服务的新建和规格解析

目前只针对systemctl 和systemd,关于service,后续补充对比!

服务 —— Linux下运行的软件我们通常把他注册为服务,

这样我们就可以通过命令开启、关闭以及保持开机启动等功能。

1、linux(以CentOS7为例)的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下。

2、CentOS7的每一个服务以.service结尾,

一般会分为3部分:[Unit]、[Service]和[Install]

    示例:

    #vim /usr/lib/systemd/system/test.service

 [Unit]                             ------主要是对这个服务的说明

 Description=java test project      ------用于描述服务

After=test.service                ------用于描述服务类别/服务的启动顺序,在某种条件达到后才执行

       

[Service]                          ------ 一些具体运行参数的设置

 Type=forking                       ------给当前的服务单元设置进程的启动类型

                                            Simple、forking、oneshot、dbus、notify

User=users                         -------设置服务运行的用户

Group=users                        -------设置服务运行的用户组

 PIDFile=/usr/local/test/test.pid   -------存放PID的文件路径

ExecStart=/usr/local/test/bin/startup.sh -----服务的具体运行命令【绝对路径】

ExecReload=                        --------重启命令【绝对路径】

ExecStop=/usr/local/test/bin/shutdown.sh -----停止命令【绝对路径】

PrivateTmp=true                    ---------给服务分配独立的临时空间

       

 [Install]

WantedBy=multi-user.target         -----服务安装的相关设置,可设置为多用户的

       

       

3、首先使用systemctl start [ 服务名(也是文件名) ] 可测试服务是否可以成功运行,

如果不能运行则可以使用systemctl status [ 服务名(也是文件名) ]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。

   

4、systemctl常用命令

systemctl enable test.service       --------设置为开机自启动,使某服务自动启动;

systemctl disable test.service      --------使某服务不自动启动

systemctl start test.service        --------启动某服务

systemctl stop test.service         --------停止某服务

service test restart                --------重启某服务

systemctl restart test.service      --------重启某服务

systemctl status test.service       --------检查服务状态