如何创建init.d启动脚本

我只想在启动时运行一个非常简单的命令。我该怎么做?我在谷歌上搜索了一下,但是找到的例子都很复杂,而我只需要在启动时运行这个脚本。我该怎么做?
脚本:
./init.d/opscenter-agent start
3个回答

如果你想在系统启动时执行这个操作(而不是在登录电脑时),请将你想要运行的命令放在 /etc/rc.local 文件中。
参考《Ubuntu 执行启动和关闭脚本》。

OP特别要求一个init.d脚本,而这个脚本实际上并不是。它是一种相关的方法,主要是因为它是我们30多年前做事情的方式,现在几乎不再使用,因为有了像init.d这样的新方法。(而init.d又被systemd的/etc/init所取代,逐渐被弃用)。 - mc0e

如果脚本不需要以root身份运行,您可以按照以下步骤操作:
1)打开“启动应用程序首选项”(按下Alt + F2,粘贴gnome-session-properties并按下Enter键);
2)点击“添加”,选择您的脚本。

enter image description here

enter image description here


如果您没有使用图形界面,您可以将命令放在此文件的/etc/rc.local行的exit 0之前。(要编辑它,请在终端中粘贴sudo nano /etc/rc.local。)

不太好,因为我正在使用Putty来管理Debian服务器,没有图形界面 :) - sed
你可以将命令(或脚本链接)放在这个文件中:/etc/rc.local - desgua
这是一个替代 OP 所要求的 init.d 脚本的选择。 - mc0e

/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 函数,你可能不需要它)。