如何创建init.d启动脚本


8

我只想在启动时运行一个非常简单的命令。我怎样才能做到这一点?我已经搜索过google,并且其中包含非常复杂的示例,但是我需要的只是在启动时运行此脚本。我怎样才能做到这一点?

脚本

./init.d/opscenter-agent start

Answers:


8

如果要在系统启动时执行此操作(而不是在登录计算机时),请输入要在其中运行的命令/etc/rc.local

请参见[Ubuntu]在启动和关闭时执行脚本


OP专门要求使用init.d脚本,但实际上并非如此。这是一个相关的方法,主要是因为它是30年前我们做事的方式,而现在有了init.d之类的新方法,现在或多或少都不再做。(反过来,不推荐使用systemd的/ etc / init)。
mc0e 2015年

3

如果脚本不需要由root用户运行,则可以执行以下操作:

1)打开“启动应用程序首选项”(Alt+ F2并粘贴gnome-session-properties并点击Enter),

2)按“添加”并选择您的脚本:

在此处输入图片说明

在此处输入图片说明


如果不使用图形环境,则可以将命令exit 0放在此文件中的行之前/etc/rc.local。(要对其进行编辑,只需将其粘贴在terminal sudo nano /etc/rc.local


不好,因为我使用腻子来管理Debian服务器,没有GUI :)
sed

您可以将命令(或指向脚本的链接)放在此文件中:/etc/rc.local
desgua 2012年

这是OP要求的init.d脚本的替代方法。
mc0e 2015年

1

/etc/rc.local方法将“在启动时运行一个非常简单的命令”,但这不是init.d脚本方法,并且在各种方面都逊色。(这可能并不重要,取决于您的目的)。

与init.d脚本不同,rc.local命令不提供用于启动和停止进程的标准接口,并且它们不提供很大的影响力来影响它们在启动过程中的运行时间。您可以在/etc/init.d/rc.local脚本中看到此脚本在其他所有命令之后运行(Required-Start: $all)。

如果确实要使用init.d脚本,则通常只需抓取一个现有脚本,然后对其进行复制和编辑即可,尽管某些现有脚本的复杂性超出了您的期望。由于多数init.d脚本就是这样启动的,因此ubuntu为此提供了/etc/init.d/skeleton。

还值得一看:

  • /etc/init.d/motd是一个最小的示例,该示例在启动时运行某些内容,但Required-Start应在何时设置参数。
  • /etc/init.d/cron是守护进程的简单起点(提供或获取parse_environment功能,您可能不需要)。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.