linux+任务+状态+t,linux后台任务执行

近日迁移服务时,需要执行后台任务。linux执行后台任务的相关命令包括&、nohup、bg等。简单记录,方便速查。

b42c13390e7a0c8099c130b11c152488.png

&命令

在命令后面加上&可实现后台运行。使用示例:

sh easeapi.sh &

但仅使用&命令,当关闭控制台终端时,任务同样会被终止。

nohup命令

nohup(no hang up)命令,即忽略SIGHUP信号。nohup能保证关闭控制台终端时,任务不被终止:

nohup sh easeapi.sh &

% ps -ef | grep easeapi

501 20869 1 0 9:35下午 ?? 0:00.02 sh easeapi.sh

#kill -9 20869

关闭控制台终端后,通过ps查看,easeapi.sh 的父进程由终端进程变成了init进程,即使关闭终端,任务依然能保持运行。nohup命令默认会在当前目录创建nohup.out文件存储输出信息。如果要输出到指定文件则:

nohup sh easeapi.sh > easeapi.file 2>&1 &

jobs / bg / fg

nohup命令虽然简单,但在一些情况下可能并不好用。比如,想使用scp命令从需要验证的服务端下载文件时,直接使用nohup命令并不会出现验证交互。这种情况下,推荐使用bg/fg命令。

Ctrl + C and Ctrl + Z

Ctrl + C 和 Ctrl + Z是linux中两种中断命令,但作用有不同。Ctrl + C是强制中断进程,而Ctrl + Z则是暂停任务执行。在终端中正常执行scp命令,输入账户密码后,使用Ctrl + Z暂停任务。

jobs命令

jobs命令显示当前任务状态。

[1] + suspended sh easeapi.sh

可以看到任务已经暂停,任务编号为1。

bg/fg

bg/fg将可将任务在前后台切换。现在将任务切换到后台:

bg %1

在通过jobs查看,任务状态已变成了running:

[1] + Running sh easeapi.sh

当关闭终端后,任务可能会被终止。可使用disown命令忽略SIGHUP信号。

disown -h %1

其它文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值