UNPKG

3.07 kBMarkdownView Raw
1disown
2===
3
4从当前的shell中移除作业。
5
6## 概要
7
8```shell
9disown [-h] [-ar] [jobspec ... | pid ...]
10```
11
12## 主要用途
13
14- 从当前shell的作业列表中移除全部作业。
15
16- 从当前shell的作业列表中移除指定的一到多个作业。
17
18- 从当前shell的作业列表中移除正在运行的作业。
19
20- 标记作业,使得它们在当前shell退出后也不会结束。
21
22
23## 选项
24
25```shell
26-h 标记每个作业标识符,这些作业将不会在shell接收到sighup信号时接收到sighup信号。
27-a 移除所有的作业。
28-r 移除运行的作业。
29```
30
31## 参数
32
33jobspec(可选):要移除的作业标识符,可以是一到多个。
34
35pid(可选):要移除的作业对应的进程ID,可以是一到多个。
36
37
38## 返回值
39
40返回成功除非未开启作业控制或执行出现错误。
41
42## 例子
43
44```shell
45# 演示。
46[user2@pc] ssh 192.168.1.4
47user2@192.168.1.4's password:
48# 此时按下ctrl+z使得交互停止。
49[1]+ Stopped ssh 192.168.1.4
50
51[user2@pc] ssh 192.168.1.7
52user2@192.168.1.7's password:
53# 此时按下ctrl+z使得交互停止。
54[1]+ Stopped ssh 192.168.1.7
55
56[user2@pc] sleep 120 &
57[3] 28986
58
59# 列出作业及pid信息。
60[user2@pc] jobs -l
61[1]- 28756 Stopped ssh 192.168.1.4
62[2]+ 28833 Stopped ssh 192.168.1.7
63[3] 28986 Running sleep 120 &
64
65# 删除运行状态的作业。
66[user2@pc] disown -r
67
68[user2@pc] jobs -l
69[1]- 28756 Stopped ssh 192.168.1.4
70[2]+ 28833 Stopped ssh 192.168.1.7
71
72# 注意disown只是移除作业,并没有停止。
73[user2@pc] pgrep -a -u user2 -f 'sleep 120'
7428986 sleep 120
75
76# 删除指定的作业。
77[user2@pc] disown %2
78bash: warning: deleting stopped job 2 with process group 28833
79
80[user2@pc] jobs -l
81[1]- 28756 Stopped ssh 192.168.1.4
82
83# 注意disown只是移除作业,并没有停止。
84[user2@pc] pgrep -a -u user2 -f 'ssh 192.168.1.7'
8528833 ssh 192.168.1.7
86
87# 删除全部作业。
88[user2@pc] disown -a
89bash: warning: deleting stopped job 1 with process group 28756
90
91[user2@pc] jobs -l
92
93# 注意disown只是移除作业,并没有停止。
94[user2@pc] pgrep -a -u user2 -f 'ssh 192.168.1.4'
9528756 ssh 192.168.1.4
96```
97
98```shell
99# 演示-h选项的作用。
100[user2@pc] sleep 90 &
101[1] 109080
102
103[user2@pc] jobs -l
104[1]+ 109080 Running sleep 90 &
105
106[user2@pc] disown -h %1
107
108[user2@pc] exit
109
110# 此时前一个终端已经关闭,现在打开新终端查找该作业。
111[user2@pc] pgrep -a -u user2 -f 'sleep 90'
112109080 sleep 90
113```
114
115### 注意
116
1171. `bash`的作业控制命令包括`bg fg kill wait disown suspend`
1182. 该命令需要`set`选项`monitor`处于开启状态时才能执行;查看作业控制状态:输入`set -o`查看`monitor`行;执行`set -o monitor``set -m`开启该选项。
1193. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
120
121### 参考链接
122
123- [disown的用法](https://www.cyberciti.biz/faq/unix-linux-disown-command-examples-usage-syntax/)
124
125