Linux 系统守护进程
守护进程,英文名:“daemon”,是一个在后台运行并且不受任何终端控制的进程,不会随着会话结束而退出;就是常说的后台运行:以下介绍用 nohup 和 pm2 来管理守护进程
nohub
安装
CentOS 系统默认自带,安装方法如下:1
2yum install coreutils
nohup --help
Usage: nohup COMMAND [ARG]…
or: nohup OPTION
Run COMMAND, ignoring hangup signals.--help display this help and exit --version output version information and exit
If standard input is a terminal, redirect it from /dev/null.
If standard output is a terminal, append output to ‘nohup.out’ if possible,
‘$HOME/nohup.out’ otherwise.
If standard error is a terminal, redirect it to standard output.
To save output to FILE, use ‘nohup COMMAND > FILE’.NOTE: your shell may have its own version of nohup, which usually supersedes
the version described here. Please refer to your shell’s documentation
for details about the options it supports.GNU coreutils online help: < http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils ‘nohup invocation’使用
运行
1
2 nohup dotnet test.dll &
nohup: ignoring input and appending output to 'nohup.out'关闭
1
2 jobs -l
kill -9 PID日志
1 tail nohup.outpm2
pm2 是一个高级的 NodeJS 进程管理工具,使用 pm2 需要安装 NodeJS,详细操作见:[[Linux 系统搭建 Node.js 环境]]
加速
修改成阿里云镜像
1
2
3
4
5 #设置
npm config set registry https://registry.npmmirror.com
#验证
npm config get registry
#返回 https://registry.npmmirror.com 表示成功安装
在线
安装完 NodeJS 就可以使用
npm
命令了
1
2 npm i pm2 -g
ln -s /usr/local/nodejs/bin/pm2 /usr/bin/离线
进入模块文件夹:/usr/local/node/lib/node_modules,压缩
1
2 cd /usr/local/node/lib/node_modules
tar -czvf pm2.tar.gz pm2
将压缩包拷贝到离线设备 /usr/local/node/lib/node_modules 目录下
1
2 cd /usr/local/node/lib/node_modules
tar -zxvf pm2.tar.gz
解压完成后,尝试运行
1 /usr/local/node/lib/node_modules/pm2/bin/pm2软连接
这样我们可以直接使用 pm2 全局命令
1
2
3
4
5
6
7
8 #配置 node 变量
ln -s /usr/local/node/lib/node_modules/pm2/bin/pm2 /usr/local/node/bin/pm2
ln -s /usr/local/node/lib/node_modules/pm2/bin/pm2-dev /usr/local/node/bin/pm2-dev
ln -s /usr/local/node/lib/node_modules/pm2/bin/pm2-docker /usr/local/node/bin/pm2-docker
ln -s /usr/local/node/lib/node_modules/pm2/bin/pm2-runtime /usr/local/node/bin/pm2-runtime
#配置全局变量
ln -s /usr/local/node/bin/pm2 /usr/local/bin/pm2使用
命令
命令 说明 pm2 update 更新版本 pm2 list 显示所有进程状态 pm2 startup 产生 init 脚本,保持进程后台运行 pm2 monit name 监视指定(所有)进程,查看进程的资源消耗情况等 pm2 log name 显示指定(所有)日志 pm2 stop name(all) 停止指定(所有)进程 pm2 restart name(all) 重启指定(所有)进程 pm2 reload name(all) 0 秒停机重载进程 (用于 NETWORKED 进程) pm2 selete name(all) 删除指定(所有)进程
实例
背景:用 .NET Core 搭建了个小应用,可以部署的闲置服务器系统是 Linux,于是先部署了相应的运行环境
直接将发布后的文件上传到服务器,进入到应用所在目录,执行一下语句即可
.NET Core 应用程序需要 runtimeconfig.json 文件
1
2 pm2 start "dotnet test.dll" --name test
pm2 monit test