centos开机自启动 第3章 systemctl centos开机自启动 第3章 systemctl

2023-09-09

一、systemctl 服务的目录介绍

在 Centos7 后,更推荐通过 systemctl 来控制服务。

01.jpg

知道服务的管理是通过 systemd,而 systemd 的配置文件大部分放置于 /usr/lib/systemd/目录内。

但是 Red Hat 官方文件指出, 该目录的文件主要是原本软件所提供的设置,建议不要修改!而要修改的位置应该放置于 /etc/systemd/system/ 目录内。

Centos 系统服务脚本目录:

/usr/lib/systemd/

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

/usr/lib/systemd/system/

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

/usr/lib/systemd/user/

二、建立 kibana 开机服务

2.1、建立 kibana 服务文件

cd /etc/systemd/system/
vim kibana.service

脚本内容:

[Unit]    
Description=nginx    
After=network.target        
[Service]    
Type=forking    
User=nginx
Group=nginx
ExecStart=/etc/init.d/nginx start    
ExecReload=/etc/init.d/nginx restart    
ExecStop=/etc/init.d/nginx  stop    
PrivateTmp=true    
[Install]    
WantedBy=multi-user.target

注意:

这里 ExecStart、ExecReload、ExecStop 的命令还是借助了上文在 /etc/init.d 目录下配置 kibana 脚本来实现。

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

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

参数说明:

  • Description:描述服务

  • After:描述服务类别

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

  • Type=forking 是后台运行的形式

  • User 服务启动用户

  • Group 服务启动用户组

  • ExecStart 为服务的具体运行命令

  • ExecReload 为重启命令

  • ExecStop 为停止命令

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

2.2、赋予执行权限

chmod 754 kibana.service

依照上面的表格,权限组合就是对应权限值求和,如下:

7 = 4 + 2 + 1 读写运行权限
5 = 4 + 1 读和运行权限
4 = 4 只读权限.

这句命令的意思是将 filename 文件的读写运行权限赋予文件所有者,把读和运行的权限赋予群组用户,把读的权限赋予其他用户。

2.3、服务的启动、停止、开机启动

启动服务

systemctl start kibana.service

查看服务状态

systemctl status kibana.service

https://file.lulublog.cn/images/3/2023/09/EgIGqvCoFAQ8iv7H3QU3aGiK8AiHKx.jpg

开启服务开机启动

systemctl enable kibana.service

三、常用服务文件

nginx.service

[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target

mysql.service

[Unit]
Description=mysql
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
#ExecReload=/usr/local/mysql/support-files/mysql.server restart
#ExecStop=/usr/local/mysql/support-files/mysql.server stop
#PrivateTmp=true[Install]
WantedBy=multi-user.target

redis.service

[Unit]
Description=Redis
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=kill -INT `cat /tmp/redis.pid`
User=www
Group=www
[Install]
WantedBy=multi-user.target

supervisord.service

[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
SysVStartPriority=99
[Install]
WantedBy=multi-user.target

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

阅读 217