一、编写自启动脚本(适合写好启动程序的脚本):
- 编写启动脚本: vim test
#!/bin/bash
function start()
{
cd /home/wwwroot/script/script
if [ `ps -aux | awk '{print $2}' | grep $(cat /var/run/user/test.pid 2> /dev/null) 2> /dev/null | wc -l` == 0 ]; then
/usr/bin/php test.php &
echo $! > /var/run/test.pid
fi
}
function stop()
{
/usr/bin/kill -9 `cat /var/run/test.pid 2> /dev/null` 2> /dev/null
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage : start | stop | restart"
;;
esac
- 加入系统启动文件夹:
chmod a+x test
cp -arf test /etc/init.d/
- 手动启动:
systemctl daemon-reload
systemctl start test
- 设置开机自启动:
chkconfig --add test
chkconfig test on
二、添加系统服务(适合shell调用其它脚本):
- 为脚本配置pid文件:
#!/bin/bash
cd /var/www/html
/usr/bin/php /home/lee/shell/test.php &
echo $! > /var/run/test.pid
- 编写启动文件: vim /usr/lib/systemd/system/test.service
[Unit]
Description=test
After=network.target
[Service]
Type=forking
PIDFile=/var/run/test.pid
ExecStart=/bin/bash /home/lee/shell/test.sh
ExecStop=/usr/bin/pkill 服务名(根据情况而定)
PrivateTmp=true
[Install]
WantedBy=multi-user.target
或
[Unit]
Description=test
After=network.target
[Service]
Type=simple
ExecStart=/bin/bash /home/lee/shell/test.sh
ExecStop=/usr/bin/pkill 服务名(根据情况而定)
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 启用服务:
systemctl enable test
- 启动服务:
systemctl start test
- 停止服务:
systemctl stop test
- 添加开机自启动:
chkconfig test on
- 取消开机自启动:
chkconfig test off