Ubuntu系统入门教程-使用service服务开机自启动
Ubuntu系统入门教程-使用service服务开机自启动
说明:
- 介绍如何使用service服务开机自启动
- systemd 支持系统级和用户级的实现开机启动
- 实现在系统级开机自启动supervisord
- 实现在用户级开机自启动supervisord
- 环境: ubuntu20.04
系统级开机自启动步骤:
- 增加service文件
sudo vim /etc/systemd/system/supervisord.service
- 内容如下:
# supervisord.service进程管理服务文件
[Unit]
Description=Process Monitoring and Control Daemon # 内容自己定义:Description=Supervisor daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop= /usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
Restart=on-failure
RestartSec=42s
KillMode=process
[Install]
WantedBy=multi-user.target
- 启动
sudo systemctl start supervisord.service
- 激活开机启动
sudo systemctl enable supervisord.service
- 察看运行情况
sudo systemctl status supervisord.service
常用命令使用
激活开机启动
sudo systemctl enable supervisord.service
取消开机启动
sudo systemctl disable supervisord.service
启动服务
sudo systemctl start supervisord.service
停止服务
sudo systemctl stop supervisord.service
重启服务
sudo systemctl restart supervisord.service
查看服务当前状态
sudo systemctl status supervisord.service
查看所有已启动的服务
sudo systemctl list-units --type=service
修改service文件后,重载服务
sudo systemctl daemon-reload
用户级开机自启动步骤:
- systemd 支持普通用户定义的 unit[s] 开机启动
systemctl --user enable/disable/start/stop/daemon-reload... xxx.timer/xxx.service...
- 注:--user 不可省略,因为默认是执行 systemctl [--system]
- 对于系统级 unit[s] 来说,不必显式添加 --system 选项
- 用户自定义的 unit[s] 可以放置在如下四个位置
/usr/lib/systemd/user:优先级最低,会被高优先级的同名 unit 覆盖
~/.local/share/systemd/user
/etc/systemd/user:全局共享的用户级 unit[s]
~/.config/systemd/user:优先级最高
- 注:
- 用户级 unit 与系统级 unit 相互独立,不能互相关联或依赖
- 用户级 unit 运行环境用 default.target,系统级通常用 multi-user.target
- 即使用户不登陆,其定制的服务依然会启动
- 增加service文件
sudo vim /usr/lib/systemd/user/supervisord.service
- 内容如下:
# supervisord.service进程管理服务文件
[Unit]
Description=Process Monitoring and Control Daemon # 内容自己定义:Description=Supervisor daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop= /usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
Restart=on-failure
RestartSec=42s
KillMode=process
[Install]
WantedBy=default.target
- 激活开机启动
systemctl --user enable supervisord.service
- 启动服务
systemctl --user start supervisord.service
- 察看运行情况
systemctl --user status supervisord.service
常用命令使用
激活开机启动
systemctl --user enable supervisord.service
取消开机启动
systemctl --user disable supervisord.service
启动服务
systemctl --user start supervisord.service
停止服务
systemctl --user stop supervisord.service
重启服务
systemctl --user restart supervisord.service
查看服务当前状态
systemctl --user status supervisord.service
修改service文件后,重载服务
systemctl --user daemon-reload
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号