如何设置 Centos7 自建服务脚本的启动顺序

今天在Centos7上搭建一个自用的 seafile 服务,用mysql做数据库。
一切都还比较顺利,就是自己编写的服务脚本开机启动的时候总是执行不成功,进了系统手动运行 systemctl start seafile.service 却没有任何问题,猜测应该是启动顺序的问题,反反复看了官方的文档,发现自己漏掉了一行注释。

...
[Unit]
Description=Seafile
# add mysql.service or postgresql.service depending on your database to the line below
After=network.target
...

因为是注释掉的,当时以为不重要,也没仔细看,导致After标签中没有加上 mysql.service 所以开机启动老是失败,修改如下就OK了。

[Unit]
Description=Seafile Service
After=network.target mysql.service

[Service]
Type=oneshot
RemainAfterExit=yes

ExecStart=/home/cowin/seafile-server-latest/seafile.sh start
ExecStop=/home/cowin/seafile-server-latest/seafile.sh stop

[Install]
WantedBy=multi-user.target

这样 seafile.service 就会在 mysql.service 执行完了在启动,就不会出错了。
然后按照官方教程建立seahub.service,注意这个服务是在seafile.service 之后启动

[Unit]
Description=Seafile Service
After=network.target seafile.service

好了,重启服务器,OK了

之前因为偷懒,将seafile.service 和 seahub.service 合并了,结果悲剧了,这两个服务之间还是要有启动先后的……

你可能感兴趣的:(如何设置 Centos7 自建服务脚本的启动顺序)