京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

nohup在背景常驻运行php脚本

2024-11-4 07:02| 发布者: 76a9| 查看: 118| 评论: 0

摘要: 目次nohup是什么nohup语法规则php步伐在linux背景执行nohup命令常用方法使用nohup命令启动一个步伐重定向步伐的输出使用nohup命令背景启动一个步伐使用nohup同时运行多个步伐停止跑在背景的进程总结nohup是什么 [cod
目次

nohup是什么

[code]nohup[/code]是Linux和Unix系统中的一个命令,其作用是在终端退出时,让进程在背景继续运行。它的全称为“no hang up”,意为“不挂起”。[code]nohup[/code]命令可以让你在退出终端或关闭SSH毗连后继续运行命令。

nohup语法规则

nohup命令的根本语法如下:

1

[code]nohup[/code] [code]COMMAND [ARGS ...] [> output-[/code][code]file[/code] [code]2> error-[/code][code]file[/code][code]] &[/code]

其中的参数寄义如下:

  • [code]COMMAND[/code]:需要在背景运行的命令或脚本。
  • [code]ARGS[/code]:命令或脚本的参数。
  • [code]> output-file[/code]:输出重定向到指定的文件中。
  • [code]2> error-file[/code]:错误信息重定向到指定的文件中。
  • [code]&[/code]:将命令放在背景运行。

nohup命令的执行过程分为以下几个步调:

  • nohup命令将当前shell的尺度输入、尺度输出和尺度错误输出全部重定向到[code]/dev/null[/code]装备中,避免被关闭终端的信号所中断。
  • nohup命令将进程放到背景执行,并将进程的PID输出到终端。
  • 进程开始执行,并将尺度输出和尺度错误输出重定向到指定的文件中。
  • 用户可以退出终端或关闭终端窗口,进程仍然在背景运行。

在工作中,我们很常常跑一个很告急的步伐,偶然候这个步伐需要跑好几个小时,甚至需要几天,这个时候如果我们退出终端,大概网络不好毗连中断,那么步伐就会被中断。而这个情况肯定不是我们想看到的,我们渴望纵然终端关闭,步伐依然可以在跑。

要让PHP步伐在Linux背景执行,可以使用nohup命令共同&符号。nohup命令可以使进程在用户注销后继续运行,&可以将进程放到背景执行。

nohup 命令是英语词组 no hangup 的缩写,意思是不挂断,也就是指步伐不退出。这个命令会使步伐忽略 HUP 信号,保证步伐可以或许正常举行。HUP 信号有些人大概比力生疏,它是在终端被中断的时候向它所关联的进程所发出的信号,进程收到这个信号后就会中断运行。所以如果你不渴望进程被这个信号干掉的话,就可以忽略这个信号。而 nohup 命令做的就是这个变乱。

php步伐在linux背景执行

[code]命令:nohup php socket.php &[/code]

这样关闭终端也不会断开了
在项目目次会生成一个nohup.out文件,记载着全部信息和非常
要关闭的话使用:

[code]ps aux | grep php netstat -anp | grep (端口号)[/code]

查看PID,然后使用:kill (PID)

1、用nohup在背景常驻运行php脚本:

[code]nohup php -f /www/wwwroot/default/redis_subscribe.php &[/code]

2、查看进程:

[code]ps -ef|grep redis_subscribe.php[/code]

3、查看全部进程:

[code]ps -ef[/code]

4、查看某一进程:

[code]ps [PID][/code]

5、停止进程:

[code]kill -9 [PID][/code]

nohup命令常用方法

使用nohup命令启动一个步伐

如果你需要运行一个步伐,纵然对应的 Shell 被退出后依然保持运行,可以这样使用 nohup 运行这个步伐:

[code]$ nohup command[/code]

当这个步伐举行起来之后,这个步伐对应的 log 输出及其错误日志都将被记载在 nohup.out 文件里,这个文件一般位于家目次大概当前目次。

重定向步伐的输出

如果我不想把步伐的输出保存在家目次大概当前目次,我想保存在我指定的路径,并且自界说文件名,要怎么操作?这时我们就可以使用重定向操作 > 。

好比,我如今有个脚本 myScript.sh 我想把它的输出保存在家目次下的 output 目次下,文件名为 myOutput.txt ,可以这样运行:

[code]$ nohup ./myScript.sh > ~/output/myOutput.txt[/code]

使用nohup命令背景启动一个步伐

如果想让步伐在背景运行,可以加上 & 符号。但这样运行之后,步伐就无影无踪了。想要让步伐重新回到终端,可以使用 fg 命令。

这个命令的输出 log 将保存在 nohup.out 文件里,你可以使用 cat 或其它命令查看。第二行里 8699 这个数字代表这个命令对应的进程号,也就是 pid 。我们可以使用 ps 命令来找到这个进程。

使用nohup同时运行多个步伐

如果你需要同时跑多个步伐,没必要一个个运行,直接使用 && 符号即可。好比,你想同时跑 mkdir ,ping,ls 三个命令,可以这样运行:

[code]$ nohup bash -c 'mkdir files &&ping -c 1 baidu.com && ls'> output.txt[/code]

停止跑在背景的进程

上面有提到,nohup 命令团结 & 符号可以使进程在背景运行,纵然关闭了终端依然不受影响。这时,如果想要停止这个进程,要怎么操作呢?

最简单的当属 kill 命令,信赖各人用过很多次了。

[code]$ kill -9 PID[/code]

那要如何找到进程对应的 pid 呢?我们可以使用 ps 命令。

[code]$ ps aux | grep myScript.sh[/code]

大概你使用 pgrep 命令也行。

接下来,再使用 kill 命令就可以停止该进程了。

[code]$ kill -9 14942[/code]

总结

到此这篇关于nohup在linux背景常驻运行php脚本的文章就介绍到这了,更多相关php步伐在linux背景执行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章渴望各人以后多多支持脚本之家!


来源:https://www.jb51.net/program/31838687q.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-1 22:12 , Processed in 0.039290 second(s), 19 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部