linux让主程序挂起,在Linux后台执行命令,防止程序被挂起

本文介绍了如何在Linux环境中使用nohup命令让程序在后台持续运行,即使关闭客户端也不会影响程序执行。同时,讲解了如何查看后台任务状态、日志文件以及如何终止后台任务,确保在退出终端后仍能管理和监控程序的运行状态。
摘要由CSDN通过智能技术生成

2012年5月29日    星期二    阵雨

通常,我喜欢将java程序写好后放在Linux服务器上跑,这样可以解脱出自己的机器做其他事情。今天突然不小心将Linux客户端(xshell)关闭了。发现原来在linux服务器上跑的程序终止了,前功尽弃。

如果能实现这样一个功能该多好。将我的程序放在Linux下跑,我退出客户端时候不影响程序的运行。当我再一次登陆客户端的时候,依旧能找到原来再跑的程序。

经过尝试,方法如下:

命令格式为: nohup command > log.file 2>&1 &

解释:

1、nohup使command命令不受shell退出的影响,忽略所有的挂起信号。

2、command是我们要在linux下执行的命令或程序。

3、>log.file将command命令输出的结果重定向到log.file文件中保存。

4、2>&1表示将错误输出重定向到标准输出。由于标准输出已经重定向到了log.file文件,因此如果命

令运行时发生错误,则错误提示也会被发送到log.file文件中。

5、最后的&代表此条命令是后台执行的。

当运行了nohup command > log,file 2>&1 &后,command命令就进入了后台运行。linux终端可以用来做其他事情。即便是退出终端,只要是不关闭linux服务器,command的命令就会一直执行到完成。

如果想查看command命令的执行情况,可以做如下操作:1、如果当前终端没有关闭,输入命令jobs即可。2、如果终端已经关闭了,则重新打开终端,输入ps -ef | grep java (假设此处的command是一条java命令)。其中-e表示显示所有进程,-f表示以全格式显示。

如果想查看命令的标准输出情况,可以查看log.file文件。命令为tail -f log.file。其中参数-f表示即时输出文件变化后追加的数据。要退出,则直接按ctrl+c即可。

如果想终止后台运行的程序,使用jobs或者ps查看程序的pid。使用命令 kill %pid 杀掉指定的任务。

若命令已经在前台执行,要转为后台执行。则ctrl+z将任务挂起。然后bg %n使其后台继续执行。其中n为任务的pid。

如果将后台命令转为前台命令,使用fg %n。 n为任务的pid,使用jobs或者ps均可查到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值