背景
程序需要长期运行,写一个进程管理程序啥的,有成本,利用systemd(system daemon)可以使得进程能够快速管理起来。
过程
① 首先构造一个shell。把需要加载的环境变量啥的,都写上去,然后进行调用,我这里以tcsh为了。
bash
vim /home/xx/xxweb.sh
xxweb.sh内容
bash
#!/bin/tcsh
source /home/xx/xx.cshrc.xxx
/home/xx/xxServer
切换root用户,赋予权限
bash
chmod 777 /home/xxx/xxweb.sh
② 新增xxweb.service
bash
vim /etc/systemd/system/xxweb.service
xxweb.service内容如下:
bash
[Unit]
Description=xxweb
After=network.target
[Service]
ExecStart=/home/xx/xxweb.sh
Restart=always
RestartSec=5
User=xx
Environment=SYSTEM_LOG_LEVEL=debug
[Install]
WantedBy=default.target
重新加载systemd
bash
systemctl daemon-reload
③ 启动
切换root用户
bash
systemctl start xxweb.service
查询状态
bash
systemctl status xxweb.service
其他细节
① 如果要使用bash需要修改shell文件的开头
bash
#!/bin/bash
② 设置为开机启动,需要切换root用户然后
bash
systemctl enable xxweb.service