持久化在linux中运行程序
交由systemctl管理,如启动、停止、重启、详细命令查看:https://linuxc.000721.cc/c/systemctl.html
比如有一个程序需要由Python解释器运行,命令如下:
/usr/bin/python3 /usr/local/bin/meme run
但它并没有提供后台运行参数,此时可以为这个程序编写一个service来达到后台运行效果,meme.service
如下
[Unit]
# 描述,systemctl是根据文件名来找的,所以写啥都不影响
Description=meme
After=network.target
[Service]
# 命令,我这里可以直接写meme是因为meme已经在环境变量中了
ExecStart=meme run
# 工作目录,程序寻找自身数据时会从这个目录下找
WorkingDirectory=/opt/meme/
# 是否重启,
Restart=always
RestartSec=10
# 以root用户执行
User=root
Group=root
[Install]
WantedBy=multi-user.target
保存为meme.service
并移入/etc/systemd/system/
目录下。
执行systemctl daemon-reload
。接下来就可以启动了,systemctl start meme.service