使用php异步执行脚本——不阻塞当前脚本的运行

有时会需要在程序运行的时候执行一些脚本, 但是当前程序并不关心执行的结果, 这时可以后台执行脚本

在Linux下每个进程都有三个文件描述符, 标准输入(0), 标准输出(1), 标准错误(2)。程序返回0代表没有错误, 返回任何其他数字都是错误,当程序执行有误的时候,可以使用PHP函数exit(num)指定任何非零数字, 以代表程序执行错误。

  • 将输出和错误日志分开

    nohup php /path/to/run.php >> /path/to/log 2>>/path/to/error.log &

  • 将输出和错误输出到同一个文件

    nohup php /path/to/run.php >> /path/to/log 2>&1 &

  • 或者直接抛弃执行结果

nohup php /path/to/run.php >> /dev/null 2>&1 &