虚机systemctl自启动配置

  • nebula 版本:2.6.1
  • 部署方式:分布式
  • 问题的具体描述

VM方式部署了nebula graph,但是进程经常出现被杀掉的情况,所以想用systemctl部署下自启动服务,但没有成功,请教下有没有推荐的配置方法?

[Unit]
Description=Nebula Graph Meta Service
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=5s
User=envuser
Group=envuser
PIDFile=/home/envuser/nebula/pids/nebula-metad.pid
ExecStart=/home/envuser/nebula/scripts/nebula.service start metad
ExecStop=/home/envuser/nebula/scripts/nebula.service stop metad
PrivateTmp=true

[Install]
WantedBy=multi-user.target
systemctl status nebula.service
● nebula.service - Nebula Graph Meta Service
   Loaded: loaded (/usr/lib/systemd/system/nebula.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

Jan 10 09:16:20 nebula-graph9006 nebula.service[17508]: [INFO] Done
Jan 10 09:16:20 nebula-graph9006 systemd[1]: nebula.service: main process exited, code=dumped, status=6/ABRT
Jan 10 09:16:20 nebula-graph9006 systemd[1]: Unit nebula.service entered failed state.
Jan 10 09:16:20 nebula-graph9006 systemd[1]: nebula.service failed.

我理解没错的话,这应该不是一个 Nebula 的使用问题而是一个 systemctl 的问题。

这个问题怎么解决呢?

Google 或者百度下,仅供参考 systemctl 实现开机自启服务_起一个好听的名字的博客-CSDN博客_systemctl配置服务自启动

这里确实是我们的缺失,现在没来得及去做到 package 里

我知道社区有一些人是亲自写 systemd 脚本的,但是直接把 nebula.service start 应该是不行,可能要自己去写或者试试 scripts/nebula-metad.service 欢迎您继续研究下去,帮我们趟出来适合的 script 方式,回馈给社区。

这个写法是对的,我赞同 @wey 的观点,可能需要修改execstart部分

对于试用、评估用途,建议使用docker-compose快速拉起服务,没记错的话我们的compose文件是默认拉起服务的。

1 个赞
[Unit]
Description=Nebula Graph Metad Service
After=network.target

[Service]
Type=forking
Restart=always
RestartSec=10s
PIDFile=/usr/local/nebula/pids/nebula-metad.pid
ExecStart=/usr/local/nebula/scripts/nebula.service start metad
ExecReload=/usr/local/nebula/scripts/nebula.service restart metad
ExecStop=/usr/local/nebula/scripts/nebula.service stop metad
PrivateTmp=true

[Install]
WantedBy=multi-user.target

我写了一个能跑通的

3 个赞