shell
disown [-h] [-ar] [jobspec ... | pid ...]
shell
-h 标记每个作业标识符,这些作业将不会在shell接收到sighup信号时接收到sighup信号。
-a 移除所有的作业。
-r 移除运行的作业。
jobspec(可选):要移除的作业标识符,可以是一到多个。
pid(可选):要移除的作业对应的进程ID,可以是一到多个。
返回成功除非未开启作业控制或执行出现错误。
shell
<h1>演示。</h1>
[user2@pc] ssh 192.168.1.4
user2@192.168.1.4's password:
<h1>此时按下ctrl+z使得交互停止。</h1>
[1]+ Stopped ssh 192.168.1.4
[user2@pc] ssh 192.168.1.7
user2@192.168.1.7's password:
<h1>此时按下ctrl+z使得交互停止。</h1>
[1]+ Stopped ssh 192.168.1.7
[user2@pc] sleep 120 &
[3] 28986
<h1>列出作业及pid信息。</h1>
[user2@pc] jobs -l
[1]- 28756 Stopped ssh 192.168.1.4
[2]+ 28833 Stopped ssh 192.168.1.7
[3] 28986 Running sleep 120 &
<h1>删除运行状态的作业。</h1>
[user2@pc] disown -r
[user2@pc] jobs -l
[1]- 28756 Stopped ssh 192.168.1.4
[2]+ 28833 Stopped ssh 192.168.1.7
<h1>注意disown只是移除作业,并没有停止。</h1>
[user2@pc] pgrep -a -u user2 -f 'sleep 120'
28986 sleep 120
<h1>删除指定的作业。</h1>
[user2@pc] disown %2
bash: warning: deleting stopped job 2 with process group 28833
[user2@pc] jobs -l
[1]- 28756 Stopped ssh 192.168.1.4
<h1>注意disown只是移除作业,并没有停止。</h1>
[user2@pc] pgrep -a -u user2 -f 'ssh 192.168.1.7'
28833 ssh 192.168.1.7
<h1>删除全部作业。</h1>
[user2@pc] disown -a
bash: warning: deleting stopped job 1 with process group 28756
[user2@pc] jobs -l
<h1>注意disown只是移除作业,并没有停止。</h1>
[user2@pc] pgrep -a -u user2 -f 'ssh 192.168.1.4'
28756 ssh 192.168.1.4
shell
<h1>演示-h选项的作用。</h1>
[user2@pc] sleep 90 &
[1] 109080
[user2@pc] jobs -l
[1]+ 109080 Running sleep 90 &
[user2@pc] disown -h %1
[user2@pc] exit
<h1>此时前一个终端已经关闭,现在打开新终端查找该作业。</h1>
[user2@pc] 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开启该选项。
help命令。