第五章 系统服务(Systemd):以start_run.service为例

终端操作:

    ▪ 开机启动:$ sudo systemctl enable start_run
    ▪ 启动服务:$ sudo systemctl start start_run
    ▪ 停止服务:$ sudo systemctl stop start_run.service(没必要使用喔咕)
    ▪ 重启服务:$ sudo systemctl restart start_run.service

配置文件:

[Unit] 区块:启动顺序与依赖关系
Description:相当于readme.md
Documentation:后加文档位置

[Service] 区块:启动行为
EnvironmentFile:指定当前服务的环境参数文件(eg.Environment = XAUTHORITY=/home/ubuntu/.Xauthority)

(the following are the most important)
ExecStart:定义启动进程时执行的命令。
ExecReload:重启服务时执行的命令
ExecStop:停止服务时执行的命令
ExecStartPre:启动服务之前执行的命令

Type:启动类型
(simple(默认值):ExecStart字段启动的进程为主进程)
(idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合)

Restart:
on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启
always:不管是什么退出原因,总是重启
on-abort:只有在收到没有捕捉到的信号终止时,才会重启
on-watchdog:超时退出,才会重启
[Install] 区块:定义如何安装这个配置文件
WantedBy字段:表示该服务所在的 Target
multi-user.target:多用户命令行状态
graphical.target:图形用户状态

**

实现实例:

**
新建service文件:

cd /usr/lib/systemd/system
gedit start_run.service  #新建service文件

在新建的service文件中键入:

[Unit]
Description=start_run Programme
 
[Service]
ExecStart=-./rm2020
ExecReload=-./rm2020
Type=simple
Restart=on-failure
RestartSec=42ms
 
[Install]
WantedBy=multi-user.target

Description:描述,相当于readme.md,内容任意

ExecStart:启动服务时执行的命令

ExecReload:重启服务时执行的命令

Type:启动类型,simple(默认值):ExecStart字段启动的进程为主进程

Restart:on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启服务

RestartSec:重启服务前的等待时间

WantedBy:表示该服务所在的 Target,有以下两种

multi-user.target:多用户命令行状态,不需要imshow或者namedWindow等打开图像界面,同时支持多个用户同时登陆并执行进程的状态;

graphical.target:图形用户状态,需要imshow或者namedWindow等打开图像界面的状态

注意:[Service]中ExecStart=-./rm2020里的‘-’表示即使./rm2020不存在也不抛出错误

设置开机启动并启动服务(下面的start_run可以换成你自己的服务名称):

sudo systemctl enable start_run  #设置开机启动
sudo systemctl start start_run  #启动服务
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,"systemd_frinit.service: Start request repeated too quickly." 是docker启动失败的错误提示信息之一。具体的解决方法可能因情况而异。以下是一些可能的解决办法: 1.根据的思路,可以尝试使用systemctl start docker命令来手动启动docker,并观察是否还有报错信息出现。如果没有报错信息,那么可能问题已经解决。 2.根据的建议,检查一下相关的配置文件,特别是daemon.json文件。可以使用vim /etc/docker/daemon.json命令来查看该文件的内容。确保文件的格式正确,没有多余的逗号或其他语法错误。 3.根据的提示,如果这是新安装的docker,可能配置文件中的某些设置不正确。可以尝试重新配置docker的相关参数,或者重新安装docker。 需要注意的是,以上解决办法仅供参考,具体的解决方法可能需要根据具体情况进行调整。如果问题仍然存在,建议查看相关的日志文件,以获得更详细的错误信息,从而更准确地定位和解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [新机部署docker报错docker.service: Start request repeated too quickly.](https://blog.csdn.net/dorlolo/article/details/124518857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值