Linux的作业管理:前台作业、后台作业

Linux的作业管理:前台作业、后台作业

比如有以下脚本,打印5次信息:
root@db2a:~# cat job1.sh
#!/bin/bash

for i in 1 2 3 4 5
do
echo "This is "$i"th running"
sleep 3
done

1. 普通作业

普通情况,进行作业:
root@db2a:~# ./job1.sh
This is 1th running
This is 2th running
This is 3th running
This is 4th running
This is 5th running

2. 后台作业

后台方式执行作业时,需要在作业后面加一个&,例如:
root@db2a:~# ./job1.sh &

3. 普通作业转到后台

要把前台作业放到后台,并暂停执行,则需要在前台ID执行的时候按 Ctrl+z,下面的例子中,有两个作业,第一个作业是vi,在进入普通模式后,按下ctrl+z键,将其停止并放入后台,作业号为1:
root@db2a:~# vi tmp1
...
"tmp1" [New File] 0,0-1 All

[1]+ Stopped vi tmp1

再前台进行第二个作业,进行到一半时,按下ctrl+z,同样的,放到后台并停止执行,作业号为2:
root@db2a:~# ./job1.sh
This is 1th running
This is 2th running
^Z <--按ctrl+z
[2]+ Stopped ./job1.sh

4. 查看后台作业列表

可以使用jobs -l命令查看后台作业,方括号内的表示作业编号,第三列表示作业的PID
root@db2a:~# jobs -l
[1]- 4294 Stopped vi tmp1
[2]+ 4327 Stopped ./job1.sh
root@db2a:~# ps -ef | grep -e 4327 -e 4294
root 4294 3855 0 02:17 pts/1 00:00:00 vi tmp1
root 4327 3855 0 02:17 pts/1 00:00:00 /bin/sh ./job1.sh
root 4329 4327 0 02:17 pts/1 00:00:00 sleep 3
root 5253 3855 0 02:27 pts/1 00:00:00 grep --color=auto -e 4327 -e 4294

5. 把后台作业调到前台继续执行

使用fg命令将后台作业调到前台,需要跟上%作业号: fg %jobnumber,下面是把第二个作业调到前台并继续执行
root@db2a:~# fg %2
./job1.sh
This is 3th running
This is 4th running
This is 5th running

6. 使后台作业继续执行

后台作业在后台继续执行,使用bg命令:
bg %jobnumber

7. 向作业发送信号:

使用kill命令向作业发送信号,语法为: kill -signal %jobnumber,所有的signal信号可由kill -l的输出中看到,比较常用的有 SIGINT表示interrupt, SIGKILL表示强制杀掉,SIGTERM表示正常终止
root@db2a:~# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX

8. 关闭终端后继续运行

若想要关闭终端后使作业继续保持运行,可以在作业前加上nohup命令:
nohup command &
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值