【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:
[root@localhost 20200313]# cat test.sh
#/bin/bash
i=10
while ((i>0))
do
echo "$i" >> log.txt
sleep 1
((i--))
done
[root@localhost 20200313]# cat demo.sh
#/bin/bash
i=40
while ((i>0))
do
echo "$i" >> demo.txt
sleep 1
((i--))
done
(1)演示案例一:&与ctrl+c
[root@localhost 20200313]# sh test.sh & # 后台运行脚本
[1] 47930
[root@localhost 20200313]# fg # 执行fg将脚本放到前台运行
sh test.sh
^C # 按Ctrl+c 停止执行脚本
(2)演示案例二:fg与jobs、ctrl+z
[root@localhost 20200313]# sh test.sh &
[1] 47982
[root@localhost 20200313]# sh demo.sh &
[2] 47988
[root@localhost 20200313]# jobs # 查看正在运行的脚本任务
[1]- Running sh test.sh &
[2]+ Running sh demo.sh &
[root@localhost 20200313]# fg 2 # 使用fg加jobs输出中任务编号调出对应编号的脚本到前台运行
sh demo.sh
^Z # Ctrl + z 临时暂停执行脚本,临时暂停的脚本如果需要回复执行,则先使用jobs查看挂起的任务编号,然后使用【fg 任务编号】即可继续执行
[2]+ Stopped sh demo.sh
(3)演示案例三:kill
[root@localhost 20200313]# sh test.sh &
[1] 48231
[root@localhost 20200313]# sh demo.sh &
[2] 48239
[root@localhost 20200313]# jobs
[1]- Running sh test.sh &
[2]+ Running sh demo.sh &
[root@localhost 20200313]# kill %2 # 杀死任务
[root@localhost 20200313]# jobs
[1]- Running sh test.sh &
[2]+ Terminated sh demo.sh
标签:脚本,Shell,demo,sh,20200313,后台,root,localhost 来源: https://www.cnblogs.com/OliverQin/p/12485439.html