当前位置:首页 » 硬件·内核·Shell·监测 » disown

disown命令

disown 命令是 Linux/Unix 系统中的一款用于将一个正在执行的作业与 shell 脱离关联的命令,使作业不再与当前 shell 会话相关联,即使当前 shell 退出,该作业也会继续运行

安装 disown 命令

disown 命令是 Linux/Unix 系统中的一个内置命令,一般情况下不需要额外安装。

disown 命令参数详解

disown 命令不需要额外参数,只是将一个正在执行的作业与 shell 脱离关联,以便在 shell 关闭或退出后,作业能够继续在后台运行。

disown 命令使用案例

假设您正在使用 shell 执行一个 long_running_job,该作业需要很长时间才能完成。您可以使用 disown 命令将作业与 shell 脱离关联,使其可以在后台继续运行,如下所示:

$ long_running_job &
[1] 12345
$ disown %1

这会将名为 %1 的作业与 shell 脱离关联,使其在后台继续运行。请注意,%1 表示当前作业列表中的第一个作业。

如果您想查看脱离关联的作业列表,可以使用 jobs 命令,如下所示:

$ jobs -l
[1]+ 12345 Running long_running_job &

这将显示当前正在运行的作业列表,包括已脱离关联的作业。

结果展示

使用 disown 命令将一个正在运行的作业与 shell 脱离关联后,您可以关闭 shell 或退出当前会话,作业仍将继续在后台运行。下面是一个例子,我们在 shell 中执行了一个睡眠作业,然后使用 disown 命令脱离关联,最后关闭了 shell,可以看到作业仍在后台运行:

$ sleep 300 &
[1] 12345
$ disown %1
$ exit

当我们再次打开 shell 时,使用 ps 命令可以看到,休眠作业仍在后台运行,没有因为 shell 的关闭而被停止:

$ ps aux | grep sleep
user  12345  0.0  0.0  26228  1204 pts/0    S    12:36   0:00 sleep 300

总之,disown 命令是 Linux/Unix 系统中非常有用的一个命令,能够将正在运行的作业与 shell 脱离关联,使其能够在后台继续运行。它易于使用,并且对于那些需要长时间运行的作业非常有用。