使用systemctl设置开机自启动
Systemctl 基本使用指南
systemctl
是 Linux 系统中用于控制 systemd 系统和服务管理器的一个基本工具。systemd 负责初始化系统,启动服务。了解 systemctl
的基本使用可以帮助你更好地管理系统服务。
1. 开启服务
要启动一个服务,可以使用以下命令:
sudo systemctl start [服务名称]
例如,要启动 nginx 服务,你可以使用:
sudo systemctl start nginx
2. 关闭服务
要停止一个正在运行的服务,可以使用:
sudo systemctl stop [服务名称]
例如,要停止 nginx 服务,你可以使用:
sudo systemctl stop nginx
3. 禁止开机自启动
如果你不希望某个服务在系统启动时自动启动,可以使用以下命令:
sudo systemctl disable [服务名称]
例如,要禁止 nginx 服务开机自启动,你可以使用:
sudo systemctl disable nginx
4. 允许开机自启动
如果你希望某个服务在系统启动时自动启动,可以使用以下命令:
sudo systemctl enable [服务名称]
例如,要允许 nginx 服务开机自启动,你可以使用:
sudo systemctl enable nginx
5. 编写一个开机自启动的脚本示例
要创建一个开机自启动的脚本,你需要:
- 编写脚本文件,例如
/usr/local/bin/my-startup-script.sh
。 - 使脚本可执行:
chmod +x /usr/local/bin/my-startup-script.sh
。 - 创建一个 systemd 服务文件,例如
/usr/lib/systemd/system/my-startup-service.service
,内容如下:
[Unit]
Description=My custom startup script
[Service]
Type=simple
ExecStart=/usr/local/bin/my-startup-script.sh
[Install]
WantedBy=multi-user.target
- 重新加载 systemd,使新的服务文件生效:
sudo systemctl daemon-reload
- 启用服务,使其开机自启动:
sudo systemctl enable my-startup-service
- 现在,你的脚本将在系统启动时自动执行。
通过掌握 systemctl
的基本使用,你可以轻松管理服务,定制系统的启动行为。
6. 编写Nginx开机自启动的脚本示例
新建配置
vim /usr/lib/systemd/system/nginx.service
写入配置
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/home/work/nginx/sbin/nginx
ExecReload=/home/work/nginx/sbin/nginx -s reload
ExecStop=/home/work/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
使配置生效
sudo systemctl daemon-reload
sudo systemctl enable nginx
版权声明:凡未经本网站书面授权,任何媒体、网站及个人不得转载、复制、重制、改动、展示或使用本网站的局部或全部的内容或服务,或在非本网站所属服务器上建立镜像。如果已转载,请自行删除。同时,我们保留进一步追究相关行为主体的法律责任的权利。我们希望与各媒体合作,签订著作权有偿使用许可合同,故转载方须书面/邮件申请,以待商榷。