0%

CentOS7自定义开机启动项

CentOS7自定义开机启动项

Centos 系统服务脚本目录: /usr/lib/systemd/

有系统(system)和用户(user)之分,如需要开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:/lib/systemd/system/

反之,用户登录后才能运行的程序,存在用户(user)里服务以.service结尾。

这边以nginx开机运行为例

QQ群:397745473

建立服务文件

vim /lib/systemd/system/nginx.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[Unit] 

Description=nginx

After=network.target



[Service]

Type=forking

ExecStart=/www/lanmps/init.d/nginxstart

ExecReload=/www/lanmps/init.d/nginxrestart

ExecStop=/www/lanmps/init.d/nginx stop

PrivateTmp=true



[Install]

WantedBy=multi-user.target

[Unit ] 服务的说明

Description:描述服务

After:描述服务类别

[Service]服务运行参数的设置

Type=forking是后台运行的形式

ExecStart为服务的具体运行命令

ExecReload为重启命令

ExecStop为停止命令

PrivateTmp=True表示给服务分配独立的临时空间

注意:

[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]服务安装的相关设置,可设置为多用户

保存目录

以754的权限保存在目录:/lib/systemd/system

设置开机自启动

1
systemctl enable nginx.service

其他命令

任务 旧指令 新指令

使某服务自动启动 chkconfig–level 3 httpd on systemctl enable httpd.service

使某服务不自动启动 chkconfig –level3 httpd off systemctl disable httpd.service

检查服务状态 servicehttpd status systemctl status httpd.service (服务详细信息)

​ systemctl is-active httpd.service (仅显示是否 Active)

显示所有已启动的服务 chkconfig –list systemctl list-units –type=service

启动某服务 servicehttpd start systemctl start httpd.service

停止某服务 servicehttpd stop systemctl stop httpd.service

重启某服务 servicehttpd restart systemctl restart httpd.service

启动nginx服务 systemctl start nginx.service

设置开机自启动 systemctl enable nginx.service

停止开机自启动 systemctl disable nginx.service

查看服务当前状态 systemctl status nginx.service

重新启动服务 systemctl restart nginx.service

查看所有已启动的服务 systemctl list-units –type=service

查看开机自启项

centos7自启项已不用chkconfig改为:

1
systemctl list-unit-files

左边是服务名称,右边是状态,enabled是开机启动,disabled是开机不启动

当然还可以过滤一下 比如:查看启动项

1
systemctl list-unit-files | grep enable

Linux开机启动管理—systemd使用

使某服务自动启动

1
systemctl enable httpd.service

使某服务不自动启动

1
systemctl disable httpd.service

检查服务状态

1
2
systemctl status httpd.service (服务详细信息) 
systemctl is-active httpd.service (仅显示是否 Active)

显示所有已启动的服务

1
systemctl list-units --type=service

启动某服务

1
systemctl start httpd.service

停止某服务

1
systemctl stop httpd.service

重启某服务

1
systemctl restart httpd.service

修改配置文件后重启

修改配置文件以后,需要重新加载配置文件,然后重新启动相关服务。

1
2
3
4
5
# 重新加载配置文件
$ sudo systemctl daemon-reload

# 重启相关服务
$ sudo systemctl restart foobar

ubuntu 18 设置开机启动方法

参考:https://linuxeye.com/463.html

Ubuntu 18.04默认进程启动管理已经切换至systemd,不在使用SysV。如果想像之前一样使用/etc/rc.local设置开机自启动,请如下设置

修改 rc-local.service
/lib/systemd/system/rc-local.service新增:

1
2
3
4
5
6
vim /lib/systemd/system/rc-local.service

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

设置开机自启动rc-local

1
systemctl enable rc-local

创建/etc/rc.local

1
2
3
4
cat > /etc/rc.local << EOF
#!/bin/bash
echo "test rc.local " > /tmp/rctest.log
EOF

新增执行权限

1
chmod +x /etc/rc.local

QQ群:397745473

欢迎关注我的其它发布渠道