一、systemd
Systemd 就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。
在 /usr/lib/systemd/system 下新建服务脚本
vim /usr/lib/systemd/system/ssj.service
[Unit]
Description=描述
Environment=环境变量或参数(系统环境变量此时无法使用)
After=network.target
[Service]
Type=forking
EnvironmentFile=所需环境变量文件或参数文件
ExecStart=启动命令(需指定全路径)
ExecStop=停止命令(需指定全路径)
User=以什么用户执行命令
[Install]
WantedBy=multi-user.target
Demo
[Unit]
Description=SSJ Service
[Service]
Type=simple
ExecStart=/usr/bin/hello.sh
SuccessExitStatus=2
[Install]
WantedBy=multi-user.target
开启服务:
# 添加或修改配置文件后,需要重新加载
systemctl daemon-reload
# 设置自启动,实质就是在 /etc/systemd/system/multi-user.target.wants/ 添加服务文件的链接
systemctl enable ssj.service
二、initd
1.zmj-ssj进程创建一个init.d方式拉起的标准脚本,例如,创建ssj脚本以及内容如下;
#!/bin/sh
program=ssj
case "$1" in
start)
echo "start txx..."
/usr/sbin/$program & >/dev/null 2>&1
;;
stop)
echo "stop txx..."
pidof $program |xargs kill
;;
restart)
echo "restart txx..."
${0} stop
sleep 1
${0} start
;;
reload)
echo "i donot konw how to write this step..."
;;
*)
echo "$program Usage : {start|stop|restart|reload}"
;;
esac
将上述脚本txx拷贝至/etc/init.d
cp ./ssj /etc/init.d/
chmod 777 /etc/init.d/ssj
添加服务
chkconfig --add ssj