【Shell】脚本后台运行
1.脚本运行的相关用法和说明
用法 | 说明 |
---|---|
sh test.sh & |
将脚本放在后台运行(常用方法) |
Crtl + c |
停止执行当前任务或脚本 |
Crtl + z |
暂停执行当前任务或脚本 |
bg |
把当前任务或脚本放到后台执行,此处可以理解为background |
fg |
把当前脚本或任务放到前台执行,如果有多个任务,可以使用fg加任务编号调出对应的脚本任务, 如fg 2,是指调出第二个脚本任务,fg可以理解为fontground |
jobs |
查看当前正在执行的脚本或任务 |
kill |
关闭执行的脚本任务,即以kill % 任务编号 的形式关闭脚本,此处的任务编号,可以通过jobs得到 |
2.实战演练
现有测试脚本test.sh与demo.sh:
[qinys@localhost 20200313]$ cat test.sh
#/bin/bash
i=10
while ((i>0))
do
echo "$i" >> log.txt
sleep 1
((i--))
done
[qinys@localhost 20200313]$ cat demo.sh
#/bin/bash
i=40
while ((i>0))
do
echo "$i" >> demo.txt
sleep 1
((i--))
done
(1)演示案例一:&与ctrl+c
[qinys@localhost 20200313]$ sh test.sh & # 后台运行脚本
[1] 47930
[qinys@localhost 20200313]$ fg # 执行fg将脚本放到前台运行
sh test.sh
^C # 按Ctrl+c 停止执行脚本
(2)演示案例二:fg与jobs、ctrl+z
[qinys@localhost 20200313]$ sh test.sh &
[1] 47982
[qinys@localhost 20200313]$ sh demo.sh &
[2] 47988
[qinys@localhost 20200313]$ jobs # 查看正在运行的脚本任务
[1]- Running sh test.sh &
[2]+ Running sh demo.sh &
[qinys@localhost 20200313]$ fg 2 # 使用fg加jobs输出中任务编号调出对应编号的脚本到前台运行
sh demo.sh
^Z # Ctrl + z 临时暂停执行脚本,临时暂停的脚本如果需要回复执行,则先使用jobs查看挂起的任务编号,然后使用【fg 任务编号】即可继续执行
[2]+ Stopped sh demo.sh
(3)演示案例三:kill
[qinys@localhost 20200313]$ sh test.sh &
[1] 48231
[qinys@localhost 20200313]$ sh demo.sh &
[2] 48239
[qinys@localhost 20200313]$ jobs
[1]- Running sh test.sh &
[2]+ Running sh demo.sh &
[qinys@localhost 20200313]$ kill %2 # 杀死任务
[qinys@localhost 20200313]$ jobs
[1]- Running sh test.sh &
[2]+ Terminated sh demo.sh
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!