今天在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 合并了,结果悲剧了,这两个服务之间还是要有启动先后的……
网友评论