环境:
CentOS7,使用systemd自动启,LNMP
问题:
seafile已经安装完成,并且也都可以正常启动使用(手动启动),现在碰到问题就是服务开机时无法自启动,出错提示如下
当然,开机完成后手动执行 systemctl start seafile.service 命令都是可以正常启动seafile
问题衍生:
在关闭mysql的情况下手动执行 systemctl start seafile.service 也会出现自动启时一样的错误,初步怀疑是mysql没有启动完成,但是 systemd 配置里已经加入了在 mysql.service 之后启动 seafile
附 seafile.service 文件内容
[Unit]
Description=Seafile Service
After=network.target mysql.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/seafile/seafile-server-latest/seafile.sh start
ExecStart=/usr/local/seafile/seafile-server-latest/seahub.sh start-fastcgi
ExecStop=/usr/local/seafile/seafile-server-latest/seafile.sh stop
ExecStop=/usr/local/seafile/seafile-server-latest/seahub.sh stop
[Install]
WantedBy=multi-user.target
看起来确实像是 mysql 的问题,如果配置了 after = mysql.service 还是没用的话,可能是 mysql 还没有 ready, 可以试试把 seafile.sh start 改成 sleep 10 && seafile.sh start
.
多谢提醒,茅塞顿开啊
在原来的 seafile.service 文件里加入 ExecStartPre=/bin/sleep 1 就成功解决了
1 个赞
你好,请问下,那你的seafile.service文件里加入了ExecStartPre=/bin/sleep 1这个字段,请问下在文件的什么地方加入,谢谢。我的环境是centos7.2 使用的是本地安装的mysql数据库,也是开机之后不能自动启动。
kvnb
5
我也是Centos7.2,不过在脚本中没有使用ExecStartPre=/bin/sleep 1,我的解决方法是,在mariadb和memcached服务启动后,再运行脚本。(我用的数据库是mariadb,并加入了memcached的缓存)
如下:
`[Unit]
Description=Seafile Service
After=network.target mariadb.service memcached.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/seafile/seafile-server-latest/seafile.sh start
ExecStart=/usr/local/seafile/seafile-server-latest/seahub.sh start-fastcgi
ExecStop=/usr/local/seafile/seafile-server-latest/seafile.sh stop
ExecStop=/usr/local/seafile/seafile-server-latest/seahub.sh stop
[Install]
WantedBy=multi-user.target`
taosx
7
seafile服务[root@34437cb700ee system]# cat seafile.service
[Unit]
Description=Seafile
After=network.target
[Service]
Type=forking
PIDfile=/opt/seafile/pids/seafile.pid
ExecStartPre=/bin/sleep 1
ExecStart=/opt/seafile/seafile-server-latest/seafile.sh start
ExecStop=/opt/seafile/seafile-server-latest/seafile.sh stop
ExecReload=/opt/seafile/seafile-server-latest/seafile.sh restart
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
seahub服务[root@34437cb700ee system]# cat seahub.service
[Unit]
Description=Seafile hub
After=network.target seafile.services
[Service]
Type=forking
PIDfile=/opt/seafile/pids/seahub.pid
ExecStartPre=/bin/sleep 1
ExecStart=/opt/seafile/seafile-server-latest/seahub.sh start
ExecStop=/opt/seafile/seafile-server-latest/seahub.sh stop
ExecReload=/opt/seafile/seafile-server-latest/seahub.sh restart
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
你拿去修改下路径,我有加了pid,systemctl status seafile 能看到状态