centos7 已经不推荐用rc.local的方式开机执行脚本,而希望我们使用systemctl去管理服务,接下来我展示一个服务示例来开启启动:
step1:添加系统服务
vim /etc/systemd/system/demo.service
,其中内容如下:
[Unit]
Description=demoservice
After=network.target
[Service]
Type=simple
ExecStart=/usr/program/docker-init/init.sh
ExecStop=echo 'nothing to do'
User=root
Restart=on-abort
[Install]
WantedBy=multi-user.target
其中的内容释义如下:
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式,如果是运行脚本设置为simple(结束后退出)
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
[Install]服务安装的相关设置,可设置为多用户
编写脚本:
vim /usr/program/docker-init/init.sh
# 内容如下:重启一下docker 容器
docker restart $(docker ps -aq)
echo 'restart docker container done!'
step2:启动刚才的文件
刷新系统服务
sudo systemctl daemon-reload
设置开机启动 并运行服务
sudo systemctl enable demo
sudo systemctl start demo
网友评论