小编给大家分享一下Linux中disown命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
Linux常用命令disown命令可以从当前shell的作业列表中移除全部作业,也可移除指定的一到多个作业;正在运行的作业也可以移除;也可以标记作业,使得它们在当前shell退出后也不会结束。

语法格式
disown [参数] [标识符or进程ID]
常用参数:
-h | 标记每个作业标识符,这些作业将不会在shell接收到sighup信号时接收到sighup信号 |
---|
-a | 移除所有的作业 |
-r | 移除运行的作业 |
### 实例
# 演示。
ssh 192.168.1.4
user2@192.168.1.4's password:
# 此时按下ctrl+z使得交互停止。
[1]+ Stopped ssh 192.168.1.4
ssh 192.168.1.7
user2@192.168.1.7's password:
# 此时按下ctrl+z使得交互停止。
[1]+ Stopped ssh 192.168.1.7
sleep 120 &
[3] 28986
# 列出作业及pid信息。
jobs -l
[1]- 28756 Stopped ssh 192.168.1.4
[2]+ 28833 Stopped ssh 192.168.1.7
[3] 28986 Running sleep 120 &
# 删除运行状态的作业。
disown -r
jobs -l
[1]- 28756 Stopped ssh 192.168.1.4
[2]+ 28833 Stopped ssh 192.168.1.7
# 注意disown只是移除作业,并没有停止。
pgrep -a -u user2 -f 'sleep 120'
28986 sleep 120
# 删除指定的作业。
disown %2
bash: warning: deleting stopped job 2 with process group 28833
jobs -l
[1]- 28756 Stopped ssh 192.168.1.4
# 注意disown只是移除作业,并没有停止。
pgrep -a -u user2 -f 'ssh 192.168.1.7'
28833 ssh 192.168.1.7
# 删除全部作业。
disown -a
bash: warning: deleting stopped job 1 with process group 28756
jobs -l
# 注意disown只是移除作业,并没有停止。
pgrep -a -u user2 -f 'ssh 192.168.1.4'
28756 ssh 192.168.1.4
# 演示-h选项的作用。
sleep 90 &
[1] 109080
jobs -l
[1]+ 109080 Running sleep 90 &
disown -h %1
exit
# 此时前一个终端已经关闭,现在打开新终端查找该作业。
pgrep -a -u user2 -f 'sleep 90'
109080 sleep 90
编辑
注意
bash的作业控制命令包括bg fg kill wait disown suspend。
该命令需要set选项monitor处于开启状态时才能执行;查看作业控制状态:输入set -o查看monitor行;执行set -o monitor或set -m开启该选项。
该命令是bash内建命令,相关的帮助信息请查看help命令。
以上是“Linux中disown命令怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注天达云行业资讯频道!