每次启动ubuntu linux时,我都需要运行一个程序。因此,我需要将其添加到我的启动程序列表中。只是一个问题:我需要通过终端来完成。
crontab -e
以编辑用户的crontab;添加@reboot command
以command
在每次启动时运行。
每次启动ubuntu linux时,我都需要运行一个程序。因此,我需要将其添加到我的启动程序列表中。只是一个问题:我需要通过终端来完成。
crontab -e
以编辑用户的crontab;添加@reboot command
以command
在每次启动时运行。
Answers:
sudo mv /filename /etc/init.d/
sudo chmod +x /etc/init.d/filename
sudo update-rc.d filename defaults
脚本现在应该在启动时启动。请注意,此方法也适用于硬链接和符号链接(ln
)。
在引导过程中,目前尚未设置PATH,因此在整个过程中使用绝对路径至关重要。但是,正如Steve HHH的评论所指出的那样,显式声明/etc/init.d/filename
update-rc.d命令的完整文件路径()在大多数Linux版本中无效。根据update-rc.d的联机帮助页,第二个参数是位于中的脚本/etc/init.d/*
。更新了上面的代码以反映这一点。
同样,正如评论中指出的(查尔斯·布兰德(Charles Brandt)),它/filename
必须是一个初始化样式脚本。还提供了一个很好的模板-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 .
sudo update-rc.d filename defaults
。