nohup jobs后台任务的一些常用操作

由于某些脚本或程序执行时间较长,需要将其放到后台去执行,那么放到后台之后怎么知道是否正常运行呢?怎么将其重新放到前台呢?怎么去结束一个正在后台运行的任务呢?

1.查看后台任务情况
jobs
-l:显示进程号;
-p:仅任务对应的显示进程号;
-n:显示任务状态的变化;
-r:仅输出运行状态(running)的任务;
-s:仅输出停止状态(stoped)的任务。
例如:

[root@master test]# jobs -l
[1]-  6096 Running                 sh bg_test.sh &
[2]+  6100 Running                 ./bg_test.sh &

输出信息第一列是任务编号,带加号的作业被当做默认作业,带减号的为下一个默认作业;
第二列是作业运行状态,常见的有Running,Stopped,Done。

可以以通配的方式来显示特定作业信息:

[root@master test]# jobs -l %sh
[1]-  6096 Running                 sh bg_test.sh &

2.将前台任务放到后台运行
①在前台任务运行的时候使用快捷键ctrl+z,放到后台时会自动停止任务,需要通过jobs获取任务编号num,并使用bg %num来将任务继续运行;
②sh bg_test.sh &
③nohup bg_test.sh &
第一、二种方式当终端关闭后,任务会终止;而第三种方式即使关闭终端也不会影响后台任务的运行,但打开新的终端后,无法通过jobs查看该后台任务,可以用ps找到。

3.将后台任务放到前台
通过jobs获取任务编号num,使用fg %num来放到前台。

4.结束一个后台任务
通过jobs获取任务编号num,使用kill %num来结束该后台任务。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用nohup命令可以在后台持续运行一个命令或脚本,即使关闭终端也不会停止该进程。以下是利用nohup命令进行后台挂载的步骤: 1. 打开终端并登录到你的服务器或系统。 2. 输入以下命令格式来使用nohup命令挂载进程:nohup command > output.log & 这里,command是你要在后台运行的命令,output.log是命令的输出日志文件名。 注意:命令格式中的&符号是必要的,它将命令放入后台执行。 3. 按下Enter键执行该命令。 4. 在该终端中,你将看到一条消息,如:nohup: ignoring input and appending output to 'output.log'。 这意味着你的命令已经在后台成功挂载。 5. 关闭该终端,或者在后台运行命令时使用Ctrl + Z退出该命令的终端。 注意:不要使用Ctrl + C,因为这个组合键可能会停止正在运行的程序。 6. 如果你想检查命令的输出,可以使用命令:tail -f output.log 这将实时显示output.log文件的内容,以查看命令的输出。 7. 如果你想停止后台挂载的命令,可以使用命令:kill [PID] 这里,[PID]是要停止的进程的ID。你可以使用命令:ps -ef | grep [command] 来查找进程的PID(command是你要停止的命令的关键词)。 更简单的方法是使用命令:pgrep [command] 来查找进程的PID。 8. 输入kill命令后,你将看到一个消息,如:[PID]+ Terminated nohup command > output.log 这意味着所选进程已被成功终止。 通过以上步骤,你可以利用nohup命令在后台挂载一个命令,让它持续运行而不受终端关闭的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值