nohup在后台常驻运行php脚本

参考:https://www.jb51.net/program/31838687q.htm

nohup是什么

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

nohup语法规则

nohup命令的基本语法如下:

1

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

其中的参数含义如下:

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

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

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

在工作中,我们很经常跑一个很重要的程序,有时候这个程序需要跑好几个小时,甚至需要几天,这个时候如果我们退出终端,或者网络不好连接中断,那么程序就会被中止。而这个情况肯定不是我们想看到的,我们希望即使终端关闭,程序依然可以在跑。

要让PHP程序在Linux后台执行,可以使用nohup命令配合&符号。nohup命令可以使进程在用户注销后继续运行,&可以将进程放到后台执行。

nohup 命令是英语词组 no hangup 的缩写,意思是不挂断,也就是指程序不退出。这个命令会使程序忽略 HUP 信号,保证程序能够正常进行。HUP 信号有些人可能比较陌生,它是在终端被中止的时候向它所关联的进程所发出的信号,进程收到这个信号后就会中止运行。所以如果你不希望进程被这个信号干掉的话,就可以忽略这个信号。而 nohup 命令做的就是这个事情。

php程序在linux后台执行

1
命令:nohup php socket.php &

这样关闭终端也不会断开了

posted @ 2024-08-01 18:44  流浪2024  阅读(122)  评论(0)    收藏  举报