systemd和initd添加开机自启服务

一、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

猜你喜欢

转载自blog.csdn.net/weixin_44698673/article/details/128676792