将源码安装的nginx加入systemd

14 篇文章 0 订阅
2 篇文章 0 订阅

通常我们使用 yum 安装某个服务的时候,安装完毕之后启动该服务可以直接使用 systemctl 这种方式启动,这是因为服务模块已经自动加入到了 systemd 中;而对于手动安装的服务,安装完毕后并没有将相关 service 加入到 systemd 里;

这里以 nginx 为例,将源码安装的 nginx 加入到 systemd 中,方便后续直接通过 systemctl 方式启动:

  1. 源码安装完 nginx 之后,启动 nginx 的方法如下:
[root@zabbix_server /root]# /usr/local/nginx/sbin/nginx -h
nginx version: nginx/1.22.0
Usage: nginx [-?hvVtTq] [-s signal] [-p prefix]
             [-e filename] [-c filename] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/nginx/)
  -e filename   : set error log file (default: logs/error.log)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file

## 如上,是通过 -s 参数指定具体的状态

## 启动:
/usr/local/nginx/sbin/nginx
## 暂停:
/usr/local/nginx/sbin/nginx -s top
## 退出:
/usr/local/nginx/sbin/nginx -s quit
## 重新加载:
/usr/local/nginx/sbin/nginx -s reload
  1. 如需通过 systemctl 方式启动,那么要手动创建 nginx.service 服务文件,并将其放入 /usr/lib/systemd/system 文件夹即可:
# vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target

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

[Install]
WantedBy=multi-user.target

PS: 注意上面的ExecStart/ExecReload/ExecStop 必须 以自己的为主
## 注释
[Unit]
Description:描述服务
After:描述服务类别

[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
  1. 写入之后重载一下 systemd
# systemctl daemon-reload
  1. 验证
[root@zabbix_server /root]# systemctl start nginx.service
[root@zabbix_server /root]# systemctl stop nginx.service
[root@zabbix_server /root]# systemctl restart nginx.service
[root@zabbix_server /root]# systemctl status nginx.service
● nginx.service - nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-09-03 16:10:35 CST; 9s ago
  Process: 18524 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 18525 (nginx)
    Tasks: 2 (limit: 11218)
   Memory: 2.0M
   CGroup: /system.slice/nginx.service
           ├─18525 nginx: master process /usr/local/nginx/sbin/nginx
           └─18526 nginx: worker process

Sep 03 16:10:35 zabbix_server systemd[1]: Starting nginx...
Sep 03 16:10:35 zabbix_server systemd[1]: Started nginx.
  1. 验证无误,顺便设置开机自启
[root@zabbix_server /root]# systemctl enable nginx.service
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

## 补充:
## 移除开机自启
[root@zabbix_server /root]# systemctl disable nginx.service
Removed /etc/systemd/system/multi-user.target.wants/nginx.service.

## 查看所有已启动的服务
[root@zabbix_server /root]# systemctl list-units --type=service
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值