linux开机自启服务的方法有很多,比如将启动命令放到linux系统开机就会执行的那些文件中,或者写个shell放到linux开机就会执行的文件夹里 等等
但上述方法在我自己实践中都或多或少的存在问题,也不方便管理,因此想使用systemctl去管理自己的服务
查阅资料得到如下实践结果:
先到这个文件夹下,这里是放管理员服务的地方 (还有的是在 usr/lib/systemd/system/ 或 lib/systemd/system/ 中, 本文不讨论)
/etc/systemd/system/
新建文件 命名
name.service (name是你服务的名字,使用systemctl管理时就用这个名)
然后编辑这个文件 例如:
[Unit]
Description=chat-server
After=network.target
[Service]
Type=simple
ExecStart=/home/wgs/gotest/chat/chat-server &
[Install]
WantedBy=multi-user.target
详细配置见: ( https://www.freedesktop.org/software/systemd/man/systemd.service.html#Examples )
简单来说:
Description=chat-server 表示你的说明
After=network.target 表示你的服务应该在啥服务启动后再启动
ExecStart= 你服务启动的命令
更多的去看上面的连接和百度
编辑好后 使用
systemctl daemon-reload
重新加载
然后使用
systemctl start yourname 启动
systemctl status yourname 查看状态
测试是否成功
之后使用
systemctl enable yourname
将它添加到开机自启中
之后可以 shutdown -r now 重启 看看成功没