一、systemctl 服务的目录介绍
在 Centos7 后,更推荐通过 systemctl 来控制服务。
知道服务的管理是通过 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
开启服务开机启动
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