[Unit]
Description:给出当前服务的简单描述。
Documentation:给出文档位置。
After:service服务之后要启动的。
Before:service服务之前要启动的。
[Service]
Type:启动类型,它可以设置的值如下:
- simple(默认值):ExecStart字段启动的进程为主进程
- forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程(后台运行)
- oneshot:类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务
- dbus:类似于simple,但会等待 D-Bus 信号后启动
- notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务
- idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合)
PrivateTmp=true :创建私有的内存临时空间
User=root :以什么用户身份运行
SuccessExitStatus=143 :成功退出状态
PIDFile=/opt/web/mybase/jetty.pid :pid文件存放位置
[Install]
Install区块,定义如何安装这个配置文件,即怎样做到开机启动。
WantedBy字段:表示该服务所在的 Target。
常用的 Target 有两个:
multi-user.target:表示多用户命令行状态;
graphical.target:表示图形用户状态,它依赖于multi-user.target。
Target的含义是服务组,表示一组服务。执行systemctl enable sshd.service命令时,sshd.service的一个符号链接,就会放在/etc/systemd/system目录下面的multi-user.target.wants子目录之中
下面是一个jetty的服务示例
[Unit]
Description=Jetty Web Application Server
After=syslog.target
[Service]
Type=forking
ExecStart=/data/scm/jetty/jetty-distribution-9.4.31.v20200723/bin/jetty.sh start
ExecReload=/data/scm/jetty/jetty-distribution-9.4.31.v20200723/bin/jetty.sh restart
ExecStop=/data/scm/jetty/jetty-distribution-9.4.31.v20200723/bin/jetty.sh
PrivateTmp=true
User=root
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
注意:每次修改/lib/systemd/system/jetty.service服务后,都需要执行systemctl daemon-reload来重载服务
//查看service状态: systemctl status jetty
//配置开机启动: systemctl enable jetty
//启动jetty: systemctl start jetty
//停止jetty: systemctl stop jetty
//重启jetty: systemctl restart jetty