Let's go

Linux下服务service使用记录

在/etc/systemd/system/路径下添加 MyService.service文件并写入一下内容()

[Unit]
Description=MyService

[Service]
Type=simple

#工作路径
WorkingDirectory=/home/software/net5.0/publish

#执行的服务的dll文件
ExecStart=/usr/bin/dotnet /home/software/net5.0/publish/MyService.dll
Restart=always
User=root

[Install]
WantedBy=multi-user.target

执行命令

重新加载配置文件:
sudo systemctl daemon-reload

启动:
sudo systemctl start MyService

停止:
sudo systemctl stop MyService

查看服务状态:
sudo systemctl status MyService

开机自启:
sudo systemctl enable MyService

关闭自启:
sudo systemctl disable ServiceName

查看服务日志:
sudo journalctl -u MyService

清理日志:
sudo journalctl --vacuum-time=1h

列出所有的服务:
systemctl list-units --type=service

相关参数详解

Service栏:启动行为

EnvironmentFile字段:指定当前服务的环境参数文件。该文件内部的key=value键值对,可以用$key的形式,在当前配置文件中获取。
ExecStart字段:定义启动进程时执行的命令,在service文件中$OPTIONS变量表示的是EnvironmentFile字段指定的环境参数文件
ExecReload字段:重启服务时执行的命令,$MAINPID变量表示的服务主进程的PID号
ExecStop字段:停止服务时执行的命令
ExecStartPre字段:启动服务前执行的命令
ExecStopPost字段:停止服务后执行的命令
ExecStartPost字段:启动服务后执行的命令
RestartSec: 如果服务需要被重启,这个参数的值为服务被重启前的等待秒数。注意,该重启等待时间只针对Restart的参数值起作用时的重启才有效,因Unit段配置的关系或者人为使用systemctl restart命令导致该服务重启时,则无效。
TimeoutSec:定义systemd停止当前服务之前等待的秒数
Environment:指定环境变量
Nice:服务的进程优先级,值越小优先级越高,默认为0。-20为最高优先级,19为最低优先级
WorkingDirectory:指定服务的工作目录
RootDirectory:指定服务进程的根目录,如果配置了这个参数后,服务将无法访问指定目录以外的任何文件。
User:指定运行服务的用户,会影响服务对本地文件系统的访问权限。可使用root
Group:指定运行服务的用户组,会影响服务对本地文件系统的访问权限。
PrivateTmp:是否给服务分配独立的临时空间(tru/false)
Restart字段:指定什么情况下需要重启服务进程,这个不同的值表示哪些情况下,服务会被重新启动:
no:退出后不会重启
always:除了用systemctl stop或等价的服务停止操作命令,其他情况下都可以重启
on-success:只有正常退出时(退出状态码为0),才会重启
on-failure:非正常退出时(退出状态码不为0),包括被信号终止和超时,才会重启
on-abnormal:只有被信号终止和超时,才会重启(一般用用于允许发生错误的服务)
on-abort:只有在收到没有捕捉到的信号终止时,才会重启
on-watchdog:超时退出,才会重启

其他

posted @ 2023-07-17 14:33  chenze  阅读(233)  评论(0编辑  收藏  举报
有事您Q我