linux进程和作业的区别,Linux进程与作业的区别及相关命令

在Linux系统上运行的所有东西都可以称之为一个进程。例如,一个简单的 helloworld程序,在终端上输入ls命令等等。

一个正常运行的进程称之为作业,一个作业可以启动多个进程,例如作业ls -lrt | grep *.txt就启动了两个进程。

进程和作业相关的命令主要有:kill、disown、wait、fg、bg、jobs

fg、bg、jobs只接受作业号为参数。

kill、disown、wait即可接受作业号为参数,又可接受进程号为参数。

jobs 命令显示了当前 shell 环境中已启动的作业状态。

kill命令可以用来终止一个进程

[alex@cgdp alex]$ sleep 100&

[1] 6273

[alex@cgdp alex]$ ps

PID TTY          TIME CMD

6230 pts/0    00:00:00 bash

6273 pts/0    00:00:00 sleep (待删除的进程)

6274 pts/0    00:00:00 ps

[alex@cgdp alex]$ kill -9 6273

[alex@cgdp alex]$ ps

PID TTY          TIME CMD

6230 pts/0    00:00:00 bash

6275 pts/0    00:00:00 ps

[1]+  Killed                  sleep 100 (进程已被删除)

disown命令可以用来删除作业

[alex@cgdp alex]$ ls -l | sleep 200&

[1] 6326

[alex@cgdp alex]$ jobs

[1]+  Running                 ls --color=tty -l | sleep 200 &

[alex@cgdp alex]$ disown %1

[alex@cgdp alex]$ jobs

[alex@cgdp alex]$

fg命令把后台运行的作业放到前台运行,bg重启一个挂起的作业。

可以用 CTRL+z 将当前进程挂起到后台暂停运行,执行一些别的操作,然后再用 fg 来将挂起的进程重新放回前台(也

可用 bg 来将挂起的进程放在后台)继续运行。

wait命令停止脚本的运行,直到后台运行的所有作业都结束为止,或者直到指定作业号或进程号为选项的作业结束为止.可

以使用wait 命令来防止在后台作业没完成(这会产生一个孤儿进程)之前退出脚本.

例如:

写一个简单的脚本test

#!/bin/sh

ls -l&

echo "done"

运行:

[alex@cgdp shell]$ ./test

done

[alex@cgdp shell]$ total 4

-rwxrwxr-x    1 alex     alex           30 May  5 21:15 test

使用wait命令重写脚本test

#!/bin/sh

ls -l&

wait

echo "done"

运行:

[alex@cgdp shell]$ ./test

total 4

-rwxrwxr-x    1 alex     alex           35 May  5 21:19 test

done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值