service 命令:管理系统服务
一、命令简介
service
命令是 Linux 系统中用于管理服务的工具,它通过调用位于 /etc/init.d/
目录下的服务脚本,来启动、停止、重启、查询状态等操作系统服务(守护进程)。service
命令是一个便捷的 shell 脚本,简化了对服务脚本的直接调用。
随着 systemd
的普及,新版的 Linux 发行版可能不再包含 service
命令,而是使用 systemctl
命令来管理服务。
二、命令参数
service [选项] [service_name] [command]
选项:
-
-h
或--help
:显示帮助信息。 -
-v
或--version
:显示版本信息。
service_name:
- 表示服务的名称,通常是
/etc/init.d/
目录下的脚本文件名。
command:
-
start
:启动服务。 -
stop
:停止服务。 -
restart
:重启服务。 -
reload
:重新加载服务的配置文件。 -
status
:查看服务的当前状态。 -
condrestart
:如果服务正在运行,则重启服务。 -
enable
:设置服务开机自启。 -
disable
:禁止服务开机自启。
三、命令示例
1 查看所有服务的状态
service --status-all
输出
[ - ] nginx[ - ] rsync[ + ] ssh[ - ] sysstat[ + ] ufw
...
-
+
:表示该服务当前正在运行(active)。 -
-
:表示该服务当前没有运行(inactive 或 stopped)。
2 管理一个服务
以nginx为例
1. 启动 Nginx 服务
启动 Nginx 服务:
sudo service nginx start
2. 停止 Nginx 服务
停止 Nginx 服务:
sudo service nginx stop
3. 重启 Nginx 服务
当修改了 Nginx 的配置文件时,可以使用 restart
命令重新启动服务:
sudo service nginx restart
4. 重新加载 Nginx 服务
如果你修改了 Nginx 配置文件,但不想停止当前的连接,可以重新加载配置而不中断服务:
sudo service nginx reload
5. 检查 Nginx 服务的状态
使用 status
查看 Nginx 服务是否正在运行:
sudo service nginx status
示例输出:
● nginx.service - A high performance web server and a reverse proxy serverLoaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)Active: active (running) since Tue 2024-09-25 10:00:00 UTC; 3min agoDocs: man:nginx(8)Main PID: 1234 (nginx)Tasks: 3 (limit: 4677)Memory: 10.2MCGroup: /system.slice/nginx.service├─1234 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;└─1235 nginx: worker process
6. 禁用 Nginx 开机自启
如果你不想让 Nginx 服务在系统启动时自动启动,可以使用以下命令禁用它:
sudo systemctl disable nginx
7. 允许 Nginx 开机自启
sudo systemctl enable nginx
3 实际场景中的示例
示例 1:检查 Nginx 是否运行
运行以下命令:
sudo service nginx status
输出显示 Nginx 正在运行(Active: active (running)
),这表明服务正在正常工作。
示例 2:重启 Nginx
当我们修改了 /etc/nginx/nginx.conf
文件后,使用以下命令重新启动 Nginx 以应用新配置:
sudo service nginx restart
示例 3:重新加载 Nginx
假设配置文件中只有轻微更改,不希望中断当前连接,可以使用 reload 命令:
sudo service nginx reload