0%

后台运行命令

后台运行命令

很多时候需要将命令放在后台执行,那么如何让命令在后台运行呢,只需要在命令后加上&即可

如:

1
java -jar test.jar &

查看后台进程

1
2
#-l 表示显示工作的PID
jobs [-l]

但是后台进程都和终端会话联系在一起,也就是说运行进程在关闭终端之后就会终止,如何解决这个问题呢?

  • 使用定时任务,让系统执行该命令,这样该命令就与终端无关了,不依赖所登录的终端

  • 使用nohup命令,使得后台命令在离开操作终端也可以正确的在后台执行,nohup的作用就是不挂断的运行命令,nohub命令运行了另一个命令来阻断所有发送给该线程的SIGHUP信号,使得退出终端时阻止进程退出

    1
    2
    nohup [命令] &

例:

1
2
3
4
nohup ./Test 1>/dev/null 2>log &

# 把命令的标准输出保存到日志文件test.log中 再将错误输出保存到参数1中,即test.log文件中
nohup ./Test test.log 2>&1 &

欢迎关注我的其它发布渠道