1、nohup + &方式
只要在命令的尾部加上符号&
,启动的进程就会成为"后台任务"
nohup
命令对server.js
进程做了三件事。
- 阻止
SIGHUP
信号发到这个进程。 - 关闭标准输入。该进程不再能够接收任何输入,即使运行在前台。
- 重定向标准输出和标准错误到文件
nohup.out
。
也就是说,nohup
命令实际上将子进程与它所在的 session 分离了,nohup
命令不会自动把进程变为"后台任务",所以必须加上&
符号
运行方式,例如启动tomcat
nohup /data/test/tomcat/apache-tomcat-9.0.20/bin/startup.sh &
2、daemon守护进程运行方式
守护进程(daemon)是生存期长的一种进程,没有控制终端。它们常常在系统引导装入时启动,仅在系统关闭时才终止。UNIX系统有很多守护进程,守护进程程序的名称通常以字母“d”结尾,linux大多数的服务进程都是通过守护进程实现的。比如0号进程(调度进程) ,1号进程(init进程)。从其名字守护看出其一般就是机器启动就运行,关机才停止。所以其应该不会受到终端的影响。同时其实在后台运行的。
先安装daemon工具
sudo yum install daemon 或者指定具体包名 sudo yum install daemonize.x86_64
运行方式,例如启动tomcat
daemonize -E BUILD_ID=dontKillMe -p /data/test/tomcat/daeminze.pid -o /data/test/tomcat/some.log -e /data/test/tomcat/error.log /data/test/tomcat/apache-tomcat-9.0.20/bin/startup.sh