在linux ubuntu下启动时自动运行程序

Mat*_*nti 140 linux ubuntu startup

可能重复:
Linux等效于Windows Startup

我每次启动ubuntu linux时都需要运行一个程序.所以我需要将它添加到我的启动程序列表中.只有一个问题:我需要通过终端来做.

Dav*_*ley 180

sudo mv /filename /etc/init.d/
sudo chmod +x /etc/init.d/filename 
sudo update-rc.d filename defaults 
Run Code Online (Sandbox Code Playgroud)

脚本现在应该在启动时启动.请注意,此方法也适用于硬链接和符号链接(ln).

编辑

此时,在引导过程中尚未设置PATH,因此始终使用绝对路径至关重要.但是,正如Steve HHH的评论中指出的那样,明确声明/etc/init.d/filenameupdate-rc.d命令的完整文件路径()在大多数Linux版本中无效.根据update-rc.d联机帮助页,第二个参数是位于的脚本/etc/init.d/*.更新了以上代码以反映这一点.

另一个编辑

另外正如评论中指出的那样(由Charles Brandt /filename撰写),必须是一个init风格的脚本.还提供了一个很好的模板 - https://github.com/fhd/init-script-template.

另一篇文章的另一个链接只是为了避免可能的链接腐烂(虽然如果GitHub死了会很难过) - http://www.linux.com/learn/tutorials/442412-managing-linux-daemons-with-init-scripts

还有另一个编辑

正如评论中指出的那样(由Russell Yan撰写),这仅适用于update-rc.d的默认模式.

根据update-rc.d的手册,它可以在两种模式下运行,"使用传统模式的机器将具有文件/etc/init.d/.legacy-bootordering",在这种情况下,您必须通过命令行参数传递序列和运行级别配置.

上面示例的等效参数集是

sudo update-rc.d filename start 20 2 3 4 5 . stop 20 0 1 6 .

  • 只是想在这种情况下添加/ filename应该是一个init样式的脚本.这是一个用于启动自己的自定义init脚本的模板:https://github.com/fhd/init-script-template (14认同)
  • 我刚刚在Ubuntu Server 12.04 LTS中尝试过这个,但在12.04中你不能使用/etc/init.d前缀.它只是`sudo update-rc.d filename defaults`. (5认同)