591游戏城 - 最新网游活动资讯聚合平台
首页活动中心正文

详解linux后台、前台运行进程

2026-01-17 21:59:56

程序运行可以有2种

前台运行

程序运行在当前的终端,所有的信息都输出到屏幕上,占用你的终端,你也无法继续使用

如果终端异常关闭,导致程序会自动退出

后台运行

不会占用你的终端,程序在系统后台跑着,你该干啥干啥,终端关了,程序也继续运行。

后台运行命令

命令集合

command & # 未启动的command放入后台去运行

jobs # 查看后台进程列表

ctrl + z # 暂停进程

bg # 程序放入后台运行,和 & 一样

fg # 将后台任务放入前台执行

后台命令实战(实战经验)

1.命令直接放入后台运行,注意日志写入到黑洞文件

[root@master10 ~]# ping www.jd.com > /dev/null &

[1] 3694

[root@master10 ~]#

2.查看后台任务列表

[root@master10 ~]# jobs

[1]+ Running ping www.jd.com > /dev/null &

3.可以将后台任务,放入前台执行,然后ctrl + z 再次暂停程序,放入后台

[root@master10 ~]# fg 1

ping www.jd.com > /dev/null

^Z

[1]+ Stopped ping www.jd.com > /dev/null

[root@master10 ~]#

的确发现了一个停止的程序

[root@master10 ~]# jobs

[1]+ Stopped ping www.jd.com > /dev/null

[root@master10 ~]#

4.可以再次让程序运行起来,并且依然是运行在后台

[root@master10 ~]# bg 1

[1]+ ping www.jd.com > /dev/null &

[root@master10 ~]# jobs

[1]+ Running ping www.jd.com > /dev/null &

[root@master10 ~]#

nohup命令

直接使用&符号让命令在后台运行有一个风险,当前bash会话异常断开后,后台运行的命令也随之消失。

但利用 nohup结合&符号使用可以避免这一风险。

要停掉jobs命令看到的后台进程,可使用kill命令,具体步骤如下:

使用jobs命令查看后台进程列表,找到要停止的进程的作业号。例如,jobs -l可以列出所有任务的 PID。输出信息中,第一列是作业编号,带加号的作业被当做默认作业,带减号的为下一个默认作业。

[root@test-110 /script/for]#jobs -l

[1] 880 Stopped bash ping.sh

[2]- 1036 Stopped bash ping.sh

[3]+ 1060 Stopped bash ping.sh

使用kill命令加上作业号来终止后台进程,格式为kill %作业号。例如,如果要终止作业号为 1 的后台进程,就执行kill %1。

[root@test-110 /script/for]#jobs -l

[1] 880 Stopped bash ping.sh

[2]- 1036 Stopped bash ping.sh

[3]+ 1060 Stopped bash ping.sh

[root@test-110 /script/for]#kill %1

[1] Stopped bash ping.sh

[root@test-110 /script/for]#jobs -l

[1] 880 Terminated bash ping.sh

[2]- 1036 Stopped bash ping.sh

[3]+ 1060 Stopped bash ping.sh

如果普通的kill命令没有效果,可以尝试使用kill -9 %作业号来强制终止进程。这将发送SIGKILL信号给进程,这是一个强制终止进程的信号,进程无法忽略。

[root@test-110 /script/for]#kill -9 %2

[2]- Stopped bash ping.sh

[root@test-110 /script/for]#jobs -l

[2]- 1036 Killed bash ping.sh

[3]+ 1060 Stopped bash ping.sh

此外,也可通过ps命令查看作业的进程号(PID),然后执行kill PID来终止进程。例如,ps -ef | grep 进程名找到对应进程的 PID,再使用kill PID进行终止。如果想根据进程名终止所有相关进程,还能使用pkill或killall命令,如pkill 进程名或killall 进程名。

4S 店修车的质保期限是多久? 辕门射戟在三国是啥段位?除了吕布,还有谁能做到?
相关内容