Linux .service文件 创建服务、配置服务自启动
查看系统进程运行状态,包括服务
1 | systemctl status |
所有可用的单元文件存放在 /lib/systemd/system/ 和 /etc/systemd/system/ 目录。
根据我的实验情况是我们应该在/lib/systemd/system/ 下存放.service文件,当设置了自启动后,会自动在 /etc/systemd/system/ 下创建一个软链接指向 /lib/systemd/system/ 下的文件。
查看所有已安装服务:
1 | systemctl list-units --type=service |
通过服务状态可以查看启动服务的.service配置文件
例如
1 | service mongodb status |
可以看到
1 | /lib/systemd/system/mongodb.service |
最重要的,运行命令,
1 | ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS |
PS:要注意的是ExecStart指定的是一个阻塞的程序,不需要后台执行,如果不阻塞,服务会认为程序执行完了,认为服务不在启动状态。
以Kafka为例
1 | [Unit] |
详细的.service文件编写方法可以参考 http://www.jinbuguo.com/systemd/systemd.service.html
修改服务配置文件后需要
1 | systemctl daemon-reload |
设置服务开机自启动
1 | systemctl enable postgresql.service |
查询是否自启动服务
1 | systemctl is-enabled postgresql.service |
取消服务器开机自启动
1 | systemctl disable postgresql.service |