&
在命令后面添加 &,表示在后台运行。但是如果用户退出或者掉线的话,程序也会退出。
nohup
nohup 程序可以使命令脱离当前 session 运行。即使用户退出或掉线,程序仍继续运行。
重定向
nohup 默认会把程序输出打印到 nohup.out 文件。如果不需要打印输出,可以在命令后面添加 >/dev/null 2>&1。这几个符号表示:
- /dev/null 表示空设备文件
- 0 表示stdin标准输入
- 1 表示stdout标准输出
- 2 表示stderr标准错误
连起来就是把标准错误重定向到标准输出,再打印到空设备文件,即丢弃。
这些命令连起来就是
1 | $ nohup php a.php >/dev/null 2>&1 & |
这只能做到后台常驻运行,如果想要保证高可用,还要看这篇