Centos7开机启动自己程序总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/li575563191/article/details/78751375

首先,是我在网上搜到的2篇资料:

systemd.service 中文手册

http://www.jinbuguo.com/systemd/systemd.service.html

在CentOS 7上利用systemctl添加自定义系统服务

http://www.linuxidc.com/Linux/2014-07/104487.htm


然后就是我自己按照上面介绍的文档编写的自己的脚本

1dashboard模块

[Unit]
Description=dashboard system
After=redis.service mysqld.service
 
[Service]
Type=forking
ExecStart=/home/cf-falcon/dashboard/control start
ExecStop=/home/cf-falcon/dashboard/control stop
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
2 cf-falcon模块

[Unit]
Description=cf-falcon system
After=redis.service mysqld.service

[Service]
Type=forking
ExecStart=/home/cf-falcon/open-falcon start
ExecStop=/home/cf-falcon/open-falcon stop
PrivateTmp=true
TimeoutSec=500

[Install]
WantedBy=multi-user.target

3 解释:

[Unit]
部分主要是对这个服务的说明,
Description::这部分内容就是描述服务的介绍,可以随意写
After:后面是填写启动本服务在哪些服务之后,意思就是比如我的需要依赖mysql 和 redis 的服务,那么我就要把mysql 和 redis也做成开机启动,然后这个服务是在他们2 后面启动的意思


[Service]
部分是服务的关键,是服务的一些具体运行参数的设置
Type=forking是后台运行的形式。
ExecStart为服务的具体运行命令
ExecStop为停止命令,
PrivateTmp=True表示给服务分配独立的临时空间,
TimeoutSec 是设置启动需要的时间,单位是sec就是s的意思


这里最重要注意:注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径(包括引用的配置文件也是绝对路径),我觉得就这点很坑,使用相对路径则会报错!


[Install]部分是服务安装的相关设置,可设置为多用户的


服务脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下,这时就可以利用systemctl进行配置了


首先,使用systemctl start [服务名(也是文件名)]可测试服务是否可以成功运行,如果不能运行则可以使用 systemctl status[服务名(也是文件名)]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。


接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。

然后重启centos7进行验证


TIPS:

systemctl enable xxxxx 

就是将/usr/lib/systemd/system的文件在/etc/systemd/system/ 目录下加软连接。

猜你喜欢

转载自blog.csdn.net/li575563191/article/details/78751375