systemctl服务service⽂件配置详解
nginx停止命令
注意:
Linux下区分⼤⼩写; Linux多⽤户多线程; Linux下每个⽂件和⽬录都有访问权限;
systemctl服务service⽂件配置详解
systemd服务#、#systemd服务service⽂件配置详解#、#systemd服务配置详解
本⽂列出了常见的配置项说明,这⾥我们以nginx.service为例,查看nginx
# systemctl cat nginx.service
内容如下
#service配置⽂件分为[Unit]、[Service]、[Install]三个部分。
#[Unit]部分:指定服务描述、启动顺序、依赖关系,包括Description、Documentation、After、Before、Wants、Requires。
[Unit]
#Description指定当前服务的简单描述。
Description=nginx代理服务
#Documentation指定服务的⽂档,可以是⼀个或多个⽂档的URL,可选,⼀般不⽤配置该项。
Documentation=/en/docs
#启动顺序,After和Before。
#注意,After和Before字段只涉及启动顺序,不涉及依赖关系。
#After表⽰当前服务在network.target之后启动,可以指定多个服务,以空格隔开。
After=network.target sshd.service
After=sshd-keygen.service
#Before表⽰当前服务在tomcat.target之前启动,可以设置多个,以空格隔开,可选,根据实际需要配置。
Before=tomcat.service
#依赖关系,Wants和Requires,可选,根据实际需要配置。
#Wants为"弱依赖"关系,即如果"mysqld.service"启动失败或停⽌运⾏,不影响nginx.service继续执⾏。
#Requires为"强依赖"关系,即如果"mysqld.service"启动失败或异常退出,那么nginx.service也必须退出。
#想要添加多个服务,可以多次使⽤此选项,也可以设置⼀个空格分隔的服务列表。
#注意,Wants与Requires只涉及依赖关系,与启动顺序⽆关,默认情况下是同时启动的。
Wants=mysqld.service
Requires=mysqld.service
#[Service]部分:指定启动⾏为,包括Type、EnvironmentFile、ExecStart、ExecReload、ExecStop、PrivateTmp。
[Service]
#Type指定服务的启动类型,必须为simple, exec, forking, oneshot, dbus, notify, idle 之⼀。常⽤simple
和forking。
# simple(默认值):ExecStart启动的进程为该服务主进程。
# exec:exec与simple类似,不同之处在于,只有在该服务的主服务进程执⾏完成之后,systemd才会认为该服务启动完成。其他后继单元必须⼀直阻塞到这个时间点之后才能继续启动。
# forking:ExecStart将以fork()⽅式启动,此时⽗进程将会退出,⼦进程将成为主进程。
# oneshot:oneshot与simple类似,不同之处在于,只有在该服务的主服务进程退出之后,systemd才会认为该服务启动完成,才会开始启动后继单元。此种类型的服务通常需要设置RemainAfterExit=选项。当Type= 与 ExecStart=都没有设置时,T # dbus:类似于simple,但会等待D-Bus信号后启动。
# notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务。
# idle:类似于simple,但是要等到其他任务都执⾏完,才会启动该服务。⼀种使⽤场合是为让该服务的输出,不与其他服务的输出相混合。
# 建议对长时间持续运⾏的服务尽可能使⽤Type=simple(这是最简单和速度最快的选择)。注意,因为simple类型的服务⽆法报告启动失败、也⽆法在服务完成初始化后对其他单元进⾏排序,所以,当客户端需要通过仅由该服务本⾝创建的IPC通道(⽽Type=forking
#EnvironmentFile指定当前服务的环境参数⽂件。该⽂件内部的key=value键值对,可以⽤$key的形式,在当前配置⽂件中获取。
EnvironmentFile=/etc/f
#启动命令
# ExecStart指定启动进程时执⾏的命令。
# ExecReload指定当该服务被要求重新载⼊配置时所执⾏的命令。另外,还有⼀个特殊的环境变量 $MAINPID 可⽤于表⽰主进程的PID,例如可以这样使⽤:/bin/kill -HUP $MAINPID。强烈建议将 ExecReload= 设为⼀个能够确保重新加载配置⽂件# ExecStop指定停⽌服务时执⾏的命令。
# ExecStartPre指定启动服务之前执⾏的命令。不常⽤。
# ExecStartPost指定启动服务之后执⾏的命令。不常⽤。
# ExecStopPost指定停⽌服务之后执⾏的命令。不常⽤。
ExecStart=/usr/sbin/nginx -c /etc/f
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
# 设为 true表⽰在进程的⽂件系统名字空间中挂载私有的 /tmp 与 /var/tmp ⽬录,也就是不与名字空间外的其他进程共享临时⽬录。这样做会增加进程的临时⽂件安全性,但同时也让进程之间⽆法通过 /tmp 或 /var/tmp ⽬录进⾏通信。
# 适⽤于web系统服务,不适⽤于mysql之类的数据库⽤户服务,数据库⽤户服务设为false。
PrivateTmp=true
#[Install]部分:指定服务的启⽤信息,只有在systemctl的enable与disable命令在启⽤/停⽤单元时才会使⽤此部分。
[Install]
# “WantedBy=multi-user.target”表⽰当系统以多⽤户⽅式(默认的运⾏级别)启动时,这个服务需要被⾃动运⾏。
WantedBy=multi-user.target
原⽂:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。