CentOS6/7 配置守护进程( 二 )

其他选项:
ExecStart:启动服务的命令ExecStartPre:启动服务之前执行的命令ExecStartPost: 启动服务之后执行的命令ExecReload:重启服务执行时的命令ExecStop:停止服务时执行的命令ExecStopPost:停止服务之后执行的命令RestartSec:自动重启服务间隔的秒数Restart:定义何种情况下会自动重启服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdogTimeoutSec:定义Systemd停止服务之前等待的秒数Environment:指定环境变量PIDFile:pid文件路径PrivateTmp:true表示给服务分配独立的临时空间User:执行命令的用户Group:执行命令的组3、[Install]区块
[Install]区块用来定义如何启动,以及是否开机启动 。
WantedBy:它的值是一个或多个Target,当前Unit激活时(enable)符号链接会放入/etc/systemd/system目录下面以Target名 + .wants后缀构成的子目录中RequiredBy: 它的值是一个或多个Target,当前Unit激活时(enable)符号链接会放入/etc/systemd/system目录下面以Target名 + .required后缀构成的子目录中Alias:当前Unit可用于启动的别名Also:当前Unit激活时(enable),会被同时激活的其他Unit五、Target的概念
Target就是一个Unit组,包含许多相关Unit 。启动某个Target的时候,Systemd就会启动里面所有的Unit 。
传统init启动模式里面,有RunLevel的概念 , 跟Target的作用很类似 。不同的是,RunLevel是互斥的,不可能多个RunLevel同时启动,但是多个Target可以同时启动 。
Target的常用命令:
查看所有target下的unitsystemctl list-unit-files --type=target查看默认target,即默认的运行级别 。对应于旧的`runlevel`命令systemctl get-default设置默认的targetsystemctl set-default multi-user.target查看target下的unitsystemctl list-dependencies multi-user.target切换target,不属于新target的unit都会被停止systemctl isolate multi-user.target六、自己配置一个
/lib/systemd/system/目录中定义一个自己的testserver.service文件
[Unit]Description=testserver[Service]# 应用程序所在的文件目录WorkingDirectory=/usr/local/src/testserver/ExecStart=/usr/local/src/testserver/testserverRestart=always# 如果服务崩溃 , 10秒后重新启动服务RestartSec=10KillSignal=SIGINTSyslogIdentifier=testserverUser=root# Production:生产环境 Development:开发环境# Environment=ASPNETCORE_ENVIRONMENT=Development[Install]WantedBy=multi-user.target# 由此target触发自启动通过以下命令实现启动
systemctl daemon-reload// 自动启动systemctl enable testserver.service//立即启动systemctl start testserver.service//状态查看systemctl status testserver.service部分摘自
http://t.zoukankan.com/solohac-p-4154181.html
https://www.cnblogs.com/jkko123/p/12171572.html

推荐阅读