Linux后台运行程序的办法

2018年5月2日13:16:03 发表评论

Linux后台运行程序的办法
一点PHP博客分享关于如何让linux中的shell指令能在后台运行,我们在开发一个项目的时候,常常会需要后台去不停的跑一些程序代码用来支持我们的服务应用。但是在执行的时候会占用前台终端,导致我们不能做其他的操作,这时候就需要用到后台去开启一个守护进程的方式,本文以python中的爬虫例子举例。

首先先介绍一下linux中nohup指令:

nohup它的作用如其字面意思,使进程不受 SIGHUP 信号的影响。但我们在使用 nohup php test.php 后会发现,进程还会一直占用前台终端,但即使终端被关闭或连接断开了,程序还是会执行,另外我们会发现在当前文件夹下多了个名为 nohup.out 的文件。

这是因为 nohup 的功能仅仅是让进程不受 SIGHUP 信号的影响,并不会让出前台终端,而且它还会在命令执行目录下建立 nohup.out用以存储进程的输出。如果进程不需要输出,且不想让 nohup 创建文件,可以将标准输出和标准错误输出重定向。

我们常将 nohup& 搭配到一块使用,执行命令如下 nohup command >/dev/null 2>&1 & 这样,就可以放心的等待进程运行结果了。

案例介绍:

假设我们做的是一个实时性的爬虫数据采集更新,那么程序是每一秒都在运行,所以这时候就要使用后台守护进程的方式去执行,具体命令如下:

一点PHP,每天一点技术分享。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: