【问题标题】:Automating services with Linux OS starting up and shutting down使用 Linux 操作系统自动启动和关闭服务
【发布时间】:2015-01-15 15:49:35
【问题描述】:

我有一个脚本来启动和停止我的服务。我的服务器基于 Linux。如何自动化该过程,以便在操作系统关闭时停止脚本运行,而在启动时运行启动脚本?

【问题讨论】:

  • 到目前为止你做了什么
  • 这个问题很大程度上取决于你的发行版使用的初始化系统:sysv-init 还是 systemd,upstart?
  • @jmajnert:其实都应该支持LSB。
  • @Jan Hudec - 有些比其他的更容易使用
  • @jmajnert:是的。到目前为止,LSB 并不是最简单的。但它适用于任何系统。

标签: linux shell server


【解决方案1】:

您应该为您的程序安装初始化脚本。标准方式是关注Linux Standards Base section 20 subsections 2-8

这个想法是创建一个脚本,当使用参数start 调用时将启动您的应用程序,在使用参数stop 调用时停止它,在使用参数restart 调用时重新启动它,并在使用参数调用时重新加载配置论据reload。此脚本应安装在/etc/init.d 中并链接到各种/etc/rd.* 目录中。该标准描述了放在脚本开头的注释和处理安装的实用程序。

请参阅文档;在这里解释得足够详细太复杂了。

现在所有 Linux 发行版都应该支持这种方式。但是 Linux 社区目前正在寻找更好的初始化系统,并且有两个新的、改进的系统正在使用中:

  • systemd 似乎是世界上大多数人的目标
  • upstart 是 Ubuntu 创建并坚持至今的解决方案

它们提供了一些更好的选项,例如在应用程序失败时重新启动应用程序的能力,但您的脚本将特定于所选系统。

【讨论】:

  • 嗨 Jan,实际上我希望在系统启动时执行我的启动脚本,并在操作系统关闭时执行停止脚本。但是,如果我将这些脚本放在 /etc/init.d 中,那么无论何时启动或停止系统都会执行。有没有办法解决这个问题?
  • @user227668:通过将脚本放在/etc/init.d 中,脚本将不会运行。您需要添加 cmets 并运行 /usr/lib/lsb/install_initd 来设置链接。阅读文档,它解释了如何设置运行级别。
猜你喜欢
  • 1970-01-01
  • 2013-10-17
  • 2014-01-28
  • 2015-01-06
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 1970-01-01
相关资源
最近更新 更多