每次服务器重启,要保证一些服务自动启动。CentOS7/RHEL7 使用systemd。

systemd使用

在CentOS7中,systemctl命令主要负责控制systemd系统和服务管理器。
主要命令如下:

  • systemctl –version,查看版本。
  • whereis systemctl,查看位置。
  • systemctl list-unit-files,列出所有可用单元(服务)。
  • systemctl list-units,列出所有运行中的单元。
  • systemctl –failed,列出所有失败的单元。
  • systemctl list-unit-files | grep enable,查看自启动的软件。
  • systemctl is-enabled mysqld.service,查看某个单元是否开机启动。
  • systemctl status mysqld.service,查看某个单元的状态。
  • systemctl start mysqld.service,启动某个单元。
  • systemctl restart mysqld.service,重启某个单元。
  • systemctl stop mysqld.service,停止某个单元。
  • systemctl daemon-reload,修改了某个单元的配置文件后,重载配置文件。
  • systemctl reload mysqld.service,重载某个单元。
  • systemctl enable mysqld.service,设置开机自启动。
  • systemctl disable mysqld.service,关闭开机自启动。
  • systemctl kill mysqld,杀死单元。

以nginx为例

  1. 创建nginx.service文件
vim /usr/lib/systemd/system/nginx.service 
  1. 文件内容
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/u02/nginx/sbin/nginx
ExecReload=/u02/nginx/sbin/nginx -s reload
ExecStop=/u02/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

3.设置开机启动

systemctl enable nginx.service
  1. 查看nginx状态
systemctl status nginx.service
  1. 杀死手动nginx 启动nginx
/u02/nginx/sbin/nginx -s quit

systemctl start nginx.service

  1. 重启服务器,查看服务状态
reboot

systemctl status nginx.service

Scroll to Top