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. 编写一个开机自启动的脚本示例

要创建一个开机自启动的脚本,你需要:

  1. 编写脚本文件,例如 /usr/local/bin/my-startup-script.sh
  2. 使脚本可执行:chmod +x /usr/local/bin/my-startup-script.sh
  3. 创建一个 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
  1. 重新加载 systemd,使新的服务文件生效:
sudo systemctl daemon-reload
  1. 启用服务,使其开机自启动:
sudo systemctl enable my-startup-service
  1. 现在,你的脚本将在系统启动时自动执行。

通过掌握 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