Posted on 2020-06-28 09:53
魔のkyo 阅读(4235)
评论(0) 编辑 收藏 引用 所属分类:
Linux
查看系统进程运行状态,包括服务
systemctl status
所有可用的单元文件存放在 /lib/systemd/system/ 和 /etc/systemd/system/ 目录。
根据我的实验情况是我们应该在/lib/systemd/system/ 下存放.service文件,当设置了自启动后,会自动在 /etc/systemd/system/ 下创建一个软链接指向 /lib/systemd/system/ 下的文件。
查看所有已安装服务:
systemctl list-units --type=service
通过服务状态可以查看启动服务的.service配置文件
例如
service mongodb status
可以看到
/lib/systemd/system/mongodb.service
最重要的,运行命令,
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
PS:要注意的是ExecStart指定的是一个阻塞的程序,不需要后台执行,如果不阻塞,服务会认为程序执行完了,认为服务不在启动状态。
以Kafka为例
[Unit]
Description=Kafka Server
After=network.target zookeeper.service
[Service]
Type=simple
ExecStart=/opt/kafka_2.12-2.3.1/bin/kafka-server-start.sh /opt/kafka_2.12-2.3.1/config/server.properties
Restart=on-failure
RestartPreventExitStatus=255
[Install]
WantedBy=multi-user.target
Alias=kafka.service
详细的.service文件编写方法可以参考 http://www.jinbuguo.com/systemd/systemd.service.html
修改服务配置文件后需要
systemctl daemon-reload
设置服务开机自启动
systemctl enable postgresql.service
查询是否自启动服务
systemctl is-enabled postgresql.service
取消服务器开机自启动
systemctl disable postgresql.service