说明
进程管理工具林林总总,但功能都大同小异。这些工具中,我首推pm2。
Linux自带的
- systemd,init.d
- nohup
- screen
- monit
python
supervisor
非常好用,python必备工具
supervisorctl start|stop <name>
node
pm2
常用命令:
启动普通的进程,如frp穿透工具:
pm2 start -n frp_ssh /opt/frp/frpc -- -c /opt/frp/frpc_ssh.ini
pm2 start -n frp_web /opt/frp/frpc -- -c /opt/frp/frpc.ini
启动Java进程:
pm2 start -n demo java -- -jar ./demo.jar
pm2 start -n jenkins java -- -jar /opt/devops/jenkins.war
启动node进程:
pm2 start -n ebook-manager /home/lao/workspaces/ebook-manager/index.js -- --docRoot=/disk/ebooks
启动npm/yarn/pnpm应用:
pm2 start -n demo npm -- run dev
启动完毕后,保存一把:
pm2 save
当系统重启后,PM2要恢复原先的pm2 save的各进程,可以使用命令:
pm2 resurrect
## 重命名
pm2 restart dev-server --name newname
golang
pmon2
和 pm2 不一样的是,pmon2 直接是启动的系统级常驻进程。进程直接由 init 来管理,因此,就算pmon2管理工具异常退出,也不会影响进程本身运行。
默认的,pmon2 所管理的进程如果发生异常崩溃,pmon2 会尝试重启该进程。如果你不希望某个进程自动重启,那么你可以设置一个 --no-autorestart 参数即可。
gopsutil
gopsutil 是用go 实现python 写的psutil 的功能,并尝试在多平台上完整psutil 的函数。
gopsutil https://github.com/shirou/gopsutil
goreman
go get github.com/mattn/goreman
goreman help
# 先启动Zookeeper
goreman run start zookeeper
# 然后启动kafka
goreman run start broker
# 查看进程状态
goreman run status
# 停止broker进程
goreman run stop broker
# 重启broker进程
goreman run restart broker