Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        3年前关闭。
                                                                                            
                
        
每次启动ubuntu linux时,我都需要运行一个程序。因此,我需要将其添加到我的启动程序列表中。只是一个问题:我需要通过终端来完成。

最佳答案

sudo mv /filename /etc/init.d/
sudo chmod +x /etc/init.d/filename
sudo update-rc.d filename defaults


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

编辑

在引导过程中,此时尚未设置PATH,因此在整个过程中使用绝对路径至关重要。但是,正如Steve HHH的评论所指出的那样,显式声明update-rc.d命令的完整文件路径(/etc/init.d/filename)在大多数Linux版本中无效。根据manpage for 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 .

10-07 19:45
查看更多