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

在linux ubuntu下启动时自动运行程序,linux,ubuntu,startup,Linux,Ubuntu,Startup,每次启动ubuntu linux时,我都需要运行一个程序。所以我需要把它添加到我的启动程序列表中。只有一个问题:我需要通过终端完成 sudo mv /filename /etc/init.d/ sudo chmod +x /etc/init.d/filename sudo update-rc.d filename defaults 脚本现在应该在引导时启动。请注意,此方法也适用于硬链接和符号链接 编辑 此时,启动进程路径尚未设置,因此在整个过程中使用绝对路径至关重要。但是,正如Steve

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

sudo mv /filename /etc/init.d/
sudo chmod +x /etc/init.d/filename 
sudo update-rc.d filename defaults 
脚本现在应该在引导时启动。请注意,此方法也适用于硬链接和符号链接

编辑 此时,启动进程路径尚未设置,因此在整个过程中使用绝对路径至关重要。但是,正如Steve HHH在评论中指出的,在大多数Linux版本中,为update rc.d命令显式声明完整文件路径/etc/init.d/filename是无效的。根据,第二个参数是位于/etc/init.d/*中的脚本。更新上述代码以反映这一点

另一次编辑 正如Charles Brandt在评论中指出的,/filename必须是init样式的脚本。还提供了一个好的模板-

另一个链接到另一篇文章,只是为了避免可能的链接腐烂,尽管如果GitHub死了会很难过-

yetAnother编辑 正如Russell Yan在评论中指出的那样,这只适用于更新rc.d的默认模式

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

上述示例的等效参数集为


sudo更新rc.d文件名开始20 2 3 4 5。停止20 0 1 6。

仅供参考,“默认值”选项会在运行级别2、3、4和5中放置一个启动脚本的链接。并在0、1和6中放置一个停止的链接。我刚刚在Ubuntu服务器12.04 LTS中尝试了这个方法,但在12.04中不能使用/etc/init.d前缀。这只是sudo update rc.d文件名默认值。@puk硬链接和符号链接都可以使用这种方法。只是想添加/filename,在这种情况下应该是init样式的脚本。下面是一个启动自定义初始化脚本的模板:阅读此模板以及答案将很有帮助,@flex此答案在您提供的两个链接中都不存在+1关于这个问题和答案事实上,这里的答案是从第一个问题中引用的。为了实现这一点,您可以使用Cron。运行crontab-e编辑用户的crontab;添加@reboot命令以在每次启动时运行该命令。我不知道它是否重复,但这是谷歌的第一次点击。。