首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ubuntu 16 -如何让Systemd即使在启动条件失败时也继续尝试启动服务?

在Ubuntu 16中,可以通过设置Systemd的Restart参数来实现即使在启动条件失败时也继续尝试启动服务。

Systemd是一个系统和服务管理器,用于在Linux系统上启动、停止和管理系统服务。它使用单元文件(unit files)来定义和配置服务。

要让Systemd在启动条件失败时继续尝试启动服务,可以在服务的单元文件中设置Restart参数。具体步骤如下:

  1. 打开服务的单元文件。单元文件通常位于/etc/systemd/system/目录下,以.service为后缀。例如,要编辑名为my-service.service的单元文件,可以运行以下命令:
代码语言:txt
复制
sudo nano /etc/systemd/system/my-service.service
  1. 在单元文件中找到[Service]部分,并添加或修改Restart参数。Restart参数有几个选项可以设置:
    • no:不重新启动服务(默认值)。
    • always:无论服务以什么方式终止,都重新启动服务。
    • on-success:只有当服务以退出状态码0(成功)终止时,才重新启动服务。
    • on-failure:只有当服务以非零状态码(失败)终止时,才重新启动服务。
    • on-abnormal:只有当服务以异常终止时(如由信号终止),才重新启动服务。
    • on-abort:只有当服务以中止状态码终止时,才重新启动服务。
    • on-watchdog:只有当服务因看门狗超时而终止时,才重新启动服务。
    • 例如,要设置服务在启动条件失败时继续尝试启动,可以将Restart参数设置为always
    • 例如,要设置服务在启动条件失败时继续尝试启动,可以将Restart参数设置为always
  • 保存并关闭文件。在Nano编辑器中,可以按下Ctrl + X,然后按下Y确认保存,最后按下Enter退出编辑器。
  • 重新加载Systemd配置,使更改生效:
代码语言:txt
复制
sudo systemctl daemon-reload
  1. 启动或重新启动服务:
代码语言:txt
复制
sudo systemctl start my-service

现在,Systemd将在启动条件失败时继续尝试启动服务。

请注意,以上步骤是针对Ubuntu 16的,不同版本的Ubuntu可能会有细微差异。此外,如果服务的单元文件位于/lib/systemd/system/目录下,而不是/etc/systemd/system/目录下,可能需要使用sudo权限进行编辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux项目开发,你必须了解Systemd服务!

会等当前服务退出,再继续往下执行Type=dbus:当前服务通过D-Bus启动Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行Type=idle:若有其他任务执行完毕,当前服务才会运行...也就是说服务本身在没连接业务不用一直空跑着,可以systemd 帮忙监听一个 socket ,以减少资源消耗。当真正有业务连接进来时,才唤醒目标服务。...4.2 Restart=always:无条件重启与on-failure相对的是Restart=always选项。不管服务如何终止的,系统都会尝试将其重启。...这意味着即使服务被管理员有意关闭,或者服务正常结束,Systemd会立即尝试将其重启。这种策略适用于那些必须始终运行的服务,无论它们是因为何种原因停止的。...这确保了即使进行系统更新或维护服务能尽可能快地恢复运行。其应用场景如下:关键服务:对于那些系统的核心功能,如数据库服务或Web服务器,这些服务的任何停机时间都是不可接受的。

14710

如何Ubuntu 18.04上配置多重身份验证

2FA有助于加强对特定服务或设备的身份验证过程:即使密码被泄露,攻击者需要访问用户设备,该设备包含用于生成安全代码的身份验证器应用程序。...先决条件 开始本指南之前,您需要以下内容: 一个Ubuntu 18.04服务器或桌面环境。...Do you want to do so (y/n) n 最后一个问题询问您是否要为登录尝试启用速率限制。 这将不允许每30秒进行三次以上的失败登录尝试,这是一种很好的安全加强技术。...注意:如果要在通过SSH访问的远程计算机上启用2FA,例如DigitalOcean Droplet,则需要按照Ubuntu 16.04上的如何为SSH设置多重身份验证指南中的第2步和3进行操作,然后再继续执行此操作教程...本教程中的其余步骤适用于所有Ubuntu安装,但远程环境需要其他更新才能使SSH服务知晓2FA。 如果您不使用SSH访问Ubuntu安装,则可以立即继续执行本教程中的其余步骤。

2.7K30
  • linux systemctl命令详解

    好吧,/sbin/init 只是到 /lib/systemd/systemd 的链接文件,系统的 1 号进程的确是 systemd,只不过 ubuntu 系统中被起了个别名叫 /sbin/init。...所以就无法再启动服务了。下面我们尝试执行一次反注销: $ sudo systemctl unmask prometheus.service ?...emergency.target:紧急处理系统的错误,无法使用 rescue.target ,可以尝试使用这种模式! shutdown.target:就是执行关机。...相关的目录和文件 不同的发行版中与 systemd 相关的文件路径可能会不太一样,强调一下,本文介绍的是 ubuntu 16.04 。...注意,我们自己创建 unit 配置文件,既可以把配置文件放在 /lib/systemd/system/ 目录下,可以放在 /etc/systemd/system/ 目录下。

    2.1K72

    如何Ubuntu 18.04 LTS上安装和配置MongoDB

    MongoDB是一个非关系型数据库,因此您不能使用SQL(结构化查询语言)插入和检索数据,不会将数据存储MySQL或Postgres等表中。...先决条件 Ubuntu服务器18.04 – 64位 Root权限 我们将在本教程中做什么: 安装MongoDB 配置MongoDB 结论 Ubuntu 18.04上安装MongoDB 第1步 – 导入公钥...启动MongoDB并将其添加为启动启动服务: systemctl start mongod systemctl enable mongod 现在用netstat命令检查MongoDB是否已经端口...重新加载systemd服务: systemctl daemon-reload 第5步 – 重新启动MongoDB并尝试连接 现在重新启动MongoDB并连接创建的用户。...第一次启动后请更改密码。 VM配置为静态IP 192.168.1.100。有关如何更改静态IP的说明可以在此处找到。 结论 一个着名的NoSQL数据库,提供高性能,高可用性和自动扩展是MongoDB。

    1.8K10

    systemd调试

    systemd调试 诊断开机问题 如果你的机器启动过程中卡住了,首先要检查挂起是发生在控制权传递给 systemd 之前还是之后。 尝试没有 rhgb 和 quiet 的情况下启动内核命令行。...显示服务启动的问题可能表现为tty1上没有登录,但其他VT可以工作。 如果启动没有在任何一个虚拟控制台上显示登录信息就停止了,宣布它肯定卡住之前,它重试最多5分钟。...关机从未完成 如果正常的重启或关机即使等待几分钟后从未完成,那么上述创建关机日志的方法将无济于事,必须使用其他方法获得日志。有两个对调试启动问题有用的选项可以用于关机问题。...服务的状态和日志 当服务启动失败,systemctl会给你一个通用的错误信息: Job failed....默认情况下,服务的 stdout 和 stderr 都指向 systemd 日志,服务通过 syslog(3) 生成的日志会进入该日志,systemd 还会保存失败服务的退出代码。我们来看看。

    1.3K20

    可能是史上最全面易懂的 Systemd 服务管理教程!( 强烈建议收藏 )

    允许更多的进程并行启动 SysV-init 时代,将每个服务项目编号依次执行启动脚本。Ubuntu 的 Upstart 解决了没有直接依赖的启动之间的并行启动。...CentOS 7:Unit 文件指向该目录 ubuntu 16:被移到了 /lib/systemd/system Systemd 默认从目录 /etc/systemd/system/ 读取配置文件。...并且,如果其中任意一个服务启动失败,这个服务会被终止 Wants:与 Requires 相似,但只是在被配置的这个 Unit 启动,触发启动列出的每个 Unit 模块,而不去考虑这些模板启动是否成功...To:与 Requires 相似,失败失败,成功成功,但是在这些模板中有任意一个出现意外结束或重启,这个服务会跟着终止或重启 Part Of:一个 Bind To 作用的子集,仅在列出的任务模块失败或重启...当配置为 true Systemd 只会负责启动服务进程,之后即便服务进程退出了,Systemd 仍然会认为这个服务还在运行中。

    67.2K1215

    linux实践之自动注册系统服务

    init 的一个主要缺点是它按顺序启动任务,等待每个任务完成加载,然后再继续下一个任务。当启动进程被输入/输出(I/O) 阻止,这可能会导致启动过程中出现长时间延迟。...启动过程中提供可靠并行的软件套件,以及对进程、守护进程、服务和挂载点的集中管理。 三、实践systemd 3.1 初窥systemd systemd手册页很全面,但很容易迷失细节中。...所以本文从一个仅包含关键要素的最小示例开始,并尝试理解其工作原理;然后逐步扩展它:怎么注册一个服务,已经很多本文之外可以延申的探讨内容。 实际系统上,有很多单元文件,例如,我的机器上有几百个条目。...容器基于ubuntu镜像,来说明systemd怎么玩转。 我们这里使用podman进程来启动容器,需要最好你懂一些docker的知识,如果不懂,没关系。...比如说,允许不运行服务的情况下打开套接字,并且仅在套接字上有流量启动服务套接字单元文件中,我们可以指定要侦听的不同套接字类型,例如文件系统套接字或 IPv4 或 IPv6 套接字。

    38510

    Linux系统服务神器:systemctl的简单配置与使用

    其实,systemctl是 Systemd 的主命令,用于操作Systemd。接下来,我们就来试试吧。 创建配置文件 如果我们要创建一个Unit服务,我们应该如何创建配置文件呢?...,一次性进程,Systemd 会等当前服务退出,再继续往下执行 - Type=dbus,当前服务通过D-Bus启动 - Type=notify,当前服务启动完毕,会通知Systemd,再继续往下执行...,启动当前服务之后执行的命令 - ExecReload,重启当前服务执行的命令 - ExecStop,停止当前服务执行的命令 - ExecStopPost,停止当其服务之后执行的命令...Type:使用simple,即使ExecStart启动不成功,Unit任务继续执行。 ExecStart:Unit的主进程,相当于入口。...aria2 # 启动刚刚配置的Frp服务 systemctl start frps image.png 可以看到,Nginx没什么问题,但是Frps启动失败了。

    5.8K171

    Linux 命令 | 每日一学,Audit 安全审计相关工具

    weiyigeek.top-audit预定义规则文件图 下面再来看看,受 systemd 管理的 auditd 启动服务相关配置文件。...入坑出坑 问题 1: 银河麒麟服务器操作系统 (KylinOS v10 Sp3) 启动 auditd 服务出现 "Security Auditing Service being skipped" 的错误通常是由于系统当前配置不支持审计服务所致...其他冲突的服务或进程:有时其他服务或进程可能占用了审计服务所需的资源,导致审计服务启动失败。...解决版本:上述由于 kylinOS V10 SP3 服务器操作系统,精简安装没有启用 audit 审计功能,需要系统内核中配置来启用审计功能(适用于 CentOS8、KylinOS v10 其他系统未尝试...这可能意味着,即使您搜索特定类型的记录,所产生的事件可能包含SYSCALL记录。

    1.3K21

    systemd 使用教程【转】

    :当前 Unit 运行必须满足的条件,否则会报启动失败 [Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动。它的主要字段如下。...,Systemd 会等当前服务退出,再继续往下执行 Type=dbus:当前服务通过D-Bus启动 Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行 Type=idle:若有其他任务执行完毕...Requires字段则表示"强依赖"关系,即如果该服务启动失败或异常退出,那么sshd.service必须退出。...一种使用场合是为服务的输出,不与其他服务的输出相混合 下面是一个oneshot的例子,笔记本电脑启动,要把触摸板关掉,配置文件可以这样写。...KillMode字段:定义 Systemd 如何停止 sshd 服务

    1K20

    【Linux】《how linux work》第六章 用户空间如何启动

    然而,截至本文撰写Ubuntu计划迁移到systemd。...最后,systemd和Upstart都提供了一定程度的按需服务。 它们不会尝试启动启动所有可能需要的服务(像System V init那样),而是只需要启动一些服务。...对于systemd和Upstart来说,运行级别主要存在于用于支持System V init脚本的服务启动,而且两者的实现方式差异很大,即使你熟悉一种init类型,你不一定知道如何处理另一种类型的init...激活具有Requires依赖关系的单元systemd尝试激活依赖单元。如果依赖单元失败systemd会停用依赖单元。o Wants 只用于激活的依赖关系。...如果在systemd尝试激活单元,单元中的条件依赖性为假,则不会激活该单元,尽管这仅适用于出现条件依赖性的单元。

    20410

    如何Ubuntu 18.04上使用Gunicorn和Nginx为Flask应用程序提供服务

    本文的大部分内容将涉及如何设置Gunicorn应用程序服务器以及如何启动应用程序并将Nginx配置为充当前端反向代理。...首先,让我们使用本地实例pip安装wheel,以确保我们的软件包即使丢失了轮存档会安装: pip install wheel 注意 无论您使用的是哪个版本的Python,激活虚拟环境,都应该使用pip...接下来,让我们创建systemd服务单元文件。创建一个systemd单元文件将允许Ubuntu的init系统自动启动Gunicorn,并在服务启动为Flask应用程序提供服务。...如果我们启动启动它,这将告诉systemd将此服务链接到什么。...之后,您创建了一个systemd服务文件,以便在引导自动启动应用程序服务器。

    3.2K10

    MySQL 8 手动安装后无法启动的问题解决

    首先的自我检讨与自我批评,最近有点懒,知识的更新慢,最近在更换系统到ubuntu 22.04 ,废弃centos ,同时MYSQL 都在8 以上,之前MySQL都是CENTOS 7.5 上安装,并且都自动化安装...SYSTEMD 作为服务系统启动和管理的初始化管理有以下的一些特性和功能 1 并行启动,与传统的放回寺不同systemd 可以将启动的任务分配给多个CPU ,同时根据依赖关系,稳定可靠的只能排序,提高启动效率...2 依赖关系的处理,systemd 中可以表名服务服务之间的依赖关系,他将自动解析依赖关系,并正确的按照流程启动依赖的程序 3 服务控制,systemd 提供完善的命令和工具来管理系统服务,通过...那么我的问题出现在哪里,安装MYSQL8 到 ubuntu系统中安装ubuntu 的时候,如果安装的账号中包含mysql将无法进行下一步,ubuntu 账号中保留了mysql 作为保留账号。...,但是到了ubuntu 22.04 版本,即使使用service 命令来启动数据库或进行数据库的关闭,还是会通过systemd 来进行服务的管理,所以在对应的位置中必须有 mysqld.service

    40210

    如何实现Linux服务Crash后自动重启?

    概述 近期碰到了一个 Linux Systemd 服务 Crash, Crash 后需要人工介入重启. 那么, 有没有办法如何实现 Linux 服务 Crash 后自动重启?...这可以防止故障服务每 5 秒钟重启一次。如果仍然失败systemd 将停止尝试启动服务。 如果服务 600 秒内 5 次尝试重启均未成功,则应进入失败状态,不再尝试重启。...这样就能确保如果服务真的坏了,systemd 不会继续尝试重启它。应该人工上去处理了。...也许你使用的软件有一个已知的错误,要求崩溃删除缓存文件,也许你想启动一个脚本来收集日志和系统信息,以便诊断问题。Systemd 允许你指定在服务失败时运行的单元。...所以 systemd 内置了单元故障触发系统重启的功能。

    84540

    如何解决 Windows-Linux 双启动设置中显示时间错误的问题

    我会向你展示上面的命令是如何修复 Windows 双启动后的时间错误问题的。 为什么 Windows 和 Linux 启动显示不同的时间? 一台电脑有两个主要时钟:系统时钟和硬件时钟。...硬件时钟叫 RTC(实时时钟)或 CMOS/BIOS 时钟。这个时钟操作系统之外,电脑的主板上。即使在你的系统关机后,它也会继续运行。 系统时钟是你操作系统内看到的。...修复 Windows Linux 双启动设置中显示错误时间的问题 有两种方法可以处理这个问题: Windows 将硬件时钟作为 UTC 时间 Linux 将硬件时钟作为本地时间 Linux...现在 Ubuntu 和大多数其他 Linux 发行版都使用 systemd,因此你可以使用 timedatectl 命令来更改设置。...当你 Linux 中启动,你的 Linux 系统知道硬件时钟使用的是本地时间,而不是 UTC。因此,它不会尝试添加这个时间的偏移。

    2.7K20

    如何Ubuntu 16.04上安装和配置VNC

    本指南中,我们将在Ubuntu 16.04服务器上设置VNC,并通过SSH隧道安全地连接到它。我们将要使用的VNC服务器是TightVNC,一种快速轻便的远程控制包。...这种选择将确保我们的VNC连接即使较慢的互联网连接上能够平稳和稳定。 准备 要完成本教程,您需要: 包括一个可以使用sudo命令非root用户的Ubuntu 16.04初始服务器。...安装了这些包之后,就可以配置VNC服务器了。 第2步 - 配置VNC服务器 首先,我们需要告诉我们的VNC服务启动要执行哪些命令。...您的主目录下的.vnc文件夹里有一个配置文件名字是xstartup,启动需要执行的命令,就存储在这个配置文件中。...启动脚本是在上一步中运行vncserver创建的,但我们需要修改Xfce桌面的一些命令。 首次设置VNC,它会在端口5901上启动默认服务器实例。此端口称为显示端口,由VNC称为:1。

    5.4K70
    领券