linuxdisown命令

worktile 其他 758

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Linux的disown命令用于在后台运行的进程中将任务从终端分离。这个命令在某些情况下非常有用,比如当你需要关闭当前终端窗口时,但保持后台任务继续运行。下面我将详细解释disown命令的用法和相关信息。

    语法:
    disown [-ar] [-h] [jobspec]

    选项:
    – a:如果没有指定jobspec,则将所有后台作业从shell的作业列表中移除。
    – r:移除指定jobspec的详细信息,但继续在后台运行。
    – h:不向后台作业发送hangup信号。

    jobspec是以%开始的一个作业编号或一个作业pid。如果省略jobspec,则默认为当前作业。

    使用disown命令的常见场景有:
    1. 将一个任务从终端分离,并允许它继续在后台运行,即使当前终端窗口关闭了。这在需要长时间运行的任务或下载大文件时非常有用。
    2. 在使用ssh远程登录时,当你需要断开与远程主机的连接,但希望已经启动的任务继续在远程主机上运行时。

    使用disown命令的示例:
    1. 将当前作业从终端分离:
    $ command &
    $ disown %1

    2. 将指定作业从终端分离:
    $ jobs
    [1]+ Running command1 &
    [2]- Running command2 &
    $ disown %2

    3. 将所有后台作业从shell的作业列表中移除:
    $ disown -a

    需要注意的是,使用disown命令后,你将失去对作业的控制和状态监控能力。因此,在使用该命令之前,请确保你已经完成了对该作业的所有操作,并知晓它们的运行状态。

    总结:disown命令是一个非常实用的工具,可以在需要断开终端连接但仍保持后台任务运行的情况下使用。它的用法相对简单,但使用时需要谨慎,以避免意外情况的发生。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    `disown`命令是Linux系统中用于从终端会话中分离进程的命令。通过使用`disown`命令,可以将正在运行的进程从当前终端会话中分离,使其成为一个独立的进程,不受终端会话的影响。下面是关于`disown`命令的五个主要点:

    1. 分离进程:`disown`命令用于将正在终端会话中运行的进程与该终端会话断开连接,使其成为一个独立的进程。这意味着即使关闭终端或注销会话,该进程仍然会继续在后台运行。

    2. 不受终端会话影响:被`disown`命令处理的进程将不再受当前终端会话的影响。这意味着即使终端关闭,进程也会继续运行,不会受到SIGHUP信号的影响。

    3. 用法:`disown`命令的基本用法为`disown [-h] [-ar] job-spec`,其中`job-spec`可以是作业的PID或作业名。如果不指定`job-spec`,则默认将最新的作业从当前终端会话中分离。

    4. 可选参数:`disown`命令还提供了一些可选参数。`-h`参数将使作业在分离之前先阻塞。`-a`参数将分离所有作业。`-r`参数将使用作业号而不是PID来指定要分离的作业。

    5. 示例:以下是一些使用`disown`命令的示例:
    – `disown`:将最新的作业从当前终端会话中分离。
    – `disown -h 1`:将作业号为1的作业分离,但在分离之前先阻塞。
    – `disown -a`:分离所有作业。
    – `disown -r %1`:使用作业号1将作业从当前终端会话中分离。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Linux的disown命令用于将正在运行的作业从终端断开,使其在后台继续运行而不会被终端关闭影响。通过使用disown命令,用户可以使作业在后台运行,即使关闭了终端窗口,作业也不会受到影响。

    disown命令的语法如下:

    disown [-h] [-ar] [作业ID或进程ID…]

    小标题1:disown命令的选项
    disown命令有一些常用的选项,如下:
    -h:标记后跟作业ID,表示如果作业正在运行,则会将其标记为不允许发送SIGHUP信号。这意味着即使关闭了终端窗口,作业也不会受到影响。
    -a:标记后不需要跟任何参数,表示对终端上的所有作业执行disown操作。
    -r:标记后跟作业ID或进程ID,表示如果作业正在运行,则会将其标记为正在运行。这意味着即使关闭了终端窗口,作业也会继续在后台运行。
    作业ID或进程ID:选择性地指定要disown的作业ID或进程ID。如果没有提供作业ID或进程ID,disown将会对当前终端上的所有作业执行操作。

    小标题2:使用disown命令解释
    1. 在终端上运行一个命令,并将其放入后台执行。
    2. 按下Ctrl+Z,将正在运行的作业暂停。
    3. 在终端上输入bg命令,将暂停的作业移到后台继续运行。
    4. 输入jobs命令,查看当前终端上的作业ID。
    5. 使用disown命令将作业标记为不会受到终端关闭的影响,使其在后台继续运行。
    6. 关闭终端窗口,作业将在后台持续运行。

    小标题3:示例
    1. 将命令放入后台运行
    $ sleep 300 &
    [1] 108

    2. 按下Ctrl+Z,将作业暂停
    [1]+ 停止 sleep 300

    3. 输入bg命令,将作业移到后台继续运行
    $ bg
    [1]+ sleep 300 &

    4. 使用disown命令将作业标记为不受终端关闭影响,使其在后台运行
    $ disown %1

    5. 关闭终端窗口,作业将在后台继续运行。

    小标题4:注意事项
    – 使用disown命令之后,作业将在后台继续运行,但与该终端窗口不再有关联。因此,如果需要与该作业交互,必须重新打开一个新的终端窗口并使用相关命令。
    – 如果作业正在运行,并且没有指定-h或-r选项,disown命令仅将该作业标记为不再与终端关联,但仍将允许终端发送信号给作业。要完全断开与终端的关联,可以使用-h选项。
    – 如果同时指定-h和-r选项,则-h选项将覆盖-r选项。

    小标题5:总结
    通过使用disown命令,用户可以将正在运行的作业从终端断开,使其在后台继续运行而不会受到终端关闭的影响。这对于长时间运行的作业非常有用,以便在终端窗口关闭后继续执行。使用disown命令标记作业为不再与终端关联,可以使用-h选项来完全断开与终端的关联。注意使用disown命令后,作业将不再与终端关联,必须使用其他方式与该作业进行交互。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部