008-Linux后台进程管理(作业控制:&、jobs、fg、bg、ctrl + z、nohup)

文章目录

前言

1、&

[2、ctrl + z](#2、ctrl + z)

3、jobs

4、fg:将后台进程调到前台执行

5、bg:将一个暂停的后台进程变为执行

6、&和nohup

总结


前言

有时候我们需要将一个进程放到后台去运行,或者将后台程序切换回前台,这时候就用到了我们的作业控制的命令。或者我们希望一个进程在终端退出后还能继续执行,这时候会用到&和nohup命令。


1、&

在命令后面加&表示放到后台运行

bash 复制代码
sleep 100 &

2、ctrl + z

将一个正在执行的前台进程放到后台,并且暂停

3、jobs

查看 当前后台作业(进程),是获取本次bash下的后台作业。 当本次终端退出后,后台作业变成孤儿进程,孤儿进程有系统父进程接管。 当再次连接终端时,原作业与当前终端,不存在关系父子关系,故看不到进程。

bash 复制代码
jobs -l

格式:

jobs 【选项】 【参数】

-l:显示进程的作业号、PID、进程状态、进程命令

-p:仅显示PID

-n:显示进程状态

-r:仅输出运行状态(running)的任务

-s:仅输出停止状态(stoped)的任务

4、fg:将后台进程调到前台执行

bash 复制代码
fg %1

格式:

fg %作业号

作业号可以通过jobs命令获得

5、bg:将一个暂停的后台进程变为执行

bash 复制代码
bg %1

使用 kill -19 将作业1暂停,然后用 bg 命令恢复,也可以用 kill -18 命令

6、&和nohup

&的意思是在后台运行,ctrl + c不会让进程消失,但是要注意, 如果你直接关掉shell后,那么进程会消失。因为&对SIGINT信号免疫,对SIGHUP信号不免疫;

nohup的意思是忽略SIGHUP信号,所以关闭shell,,进程还是存在的(对SIGHUP信号免疫)。 但是,在shell中用Ctrl+c会使进程消失(因为对SIGINT信号不免疫);

所以一般我们会同时使用 & 和 nohup,这样不管是 Ctrl + C 还是 关闭 shell 都不会使进程消失,相当于守护进程。

比如让sleep 1000变为守护进程

bash 复制代码
nohup sleep 1000 >out.log 2>&1 &

>out.log等同于1>out.log(默认是1,如果写成1>out.log结果也是一样),其中1是标准输出的意思。即将命令的标准输出写入out.log中。

2>&1中2是标准错误的意思,&1是表示文件描述符1,就像C++中取地址一样。所以这个符号整体意思是将标准错误(2)重定向到标准输出(1),然后也就一同写入文件out.log中。


总结

本文主要介绍了作业管理的一些命令:&、jobs、fg、bg、ctrl + z、nohup。

相关推荐
姜鱼问生2 小时前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
Apipi*3 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP4 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_4 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
此时不提桶,更待何时5 小时前
06-14-A-Kafka集群运维与迁移实战详解
运维·kafka
hz567896 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC6 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
优橙教育6 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
IT研究所6 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
BLUcoding6 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom