Linux disown命令使用详解
Shell disown命令用于从当前的shell中移除作业。
概要
1
| disown [-h] [-ar] [jobspec ... | pid ...]
|
主要用途
选项
1 2 3
| -h 标记每个作业标识符,这些作业将不会在shell接收到sighup信号时接收到sighup信号。 -a 移除所有的作业。 -r 移除运行的作业。
|
参数
返回值
返回成功除非未开启作业控制或执行出现错误。
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| ssh 192.168.1.4 [email protected]'s password: # 此时按下ctrl+z使得交互停止。 [1]+ Stopped ssh 192.168.1.4 ssh 192.168.1.7 [email protected]'s password:
[1]+ Stopped ssh 192.168.1.7 sleep 120 & [3] 28986
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
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
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
pgrep -a -u user2 -f 'ssh 192.168.1.4' 28756 ssh 192.168.1.4
|
1 2 3 4 5 6 7 8 9 10
| 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
命令。