Linux 开机启动命令添加方法

2025-07-24 0 231 百度已收录

用 Linux 系统的朋友,是不是总在愁怎么让程序开机自己启动?试了网上的方法,要么步骤太复杂看不懂,要么照着做了却没效果?其实啊,Linux 添加开机启动命令的方法有好几种,不同的系统版本适合的方法还不一样。今天小编就把最常用的几种方法教给你,新手也能跟着做,一起往下看吧!

先说说:为啥 Linux 的开机启动命令这么麻烦?

用过 Windows 的朋友可能知道,设置开机启动拖个快捷方式就行,但 Linux 不一样。它讲究权限和规则,命令写错一个字母、路径差个符号,都可能让启动失败。而且 Linux 发行版太多,Ubuntu、CentOS、Debian 各有各的习惯,比如 Ubuntu 现在常用 systemd,而有些老服务器还在用 rc.local,这就导致方法不统一。
但也正因为这样,Linux 的启动管理更灵活,能精确控制程序什么时候启动、以什么权限启动。小编第一次用 Linux 时,想让防火墙开机启动,折腾了一下午才弄好,就是因为没搞懂不同方法的区别。


方法一:rc.local 大法,简单直接适合老系统

这种方法是最传统的,在很多老版本 Linux(比如 CentOS 6、Ubuntu 14.04)上很好用。

  1. 打开终端,输入sudo nano /etc/rc.local,回车。这一步是用管理员权限编辑 rc.local 文件,nano 是个简单的编辑器,新手也能上手。
  2. 在文件里的exit 0前面,写上你要执行的命令。比如想开机启动 nginx 服务,就写/usr/sbin/nginx;想启动自己的脚本,就写脚本的绝对路径,比如/home/yourname/start.sh &(后面加 & 是让程序在后台运行,不影响开机)。
  3. 按 Ctrl+O 保存,回车确认文件名,再按 Ctrl+X 退出编辑器。
  4. 最后输入sudo chmod +x /etc/rc.local,给这个文件加上执行权限,不然开机不会运行里面的命令。

不过要注意哦,现在很多新系统(比如 Ubuntu 16.04 以后)默认没有启用 rc.local,就算写了命令也没用。这时候得先启用它,具体方法可以搜 “你的系统名 + 启用 rc.local”,步骤稍微多一点,但也不难。


方法二:systemd 服务,新系统首选,稍微复杂但靠谱

现在主流的 Linux 系统基本都用 systemd 来管理启动项,比如 Ubuntu 18.04+、CentOS 7+,这种方法虽然步骤多,但稳定且功能强。

  1. 先创建一个服务文件,终端输入sudo nano /etc/systemd/system/your service name.service,比如你的程序叫 myapp,就命名为 myapp.service。
  2. 在文件里输入以下内容(注意改括号里的内容):plaintext
    [Unit]
    Description=这是我的程序启动服务(随便写个描述)
    After=network.target(表示在网络启动后再运行这个程序)
    
    [Service]
    ExecStart=/path/to/your/program(程序的绝对路径,比如/usr/bin/myapp)
    User=username(运行程序的用户,一般填你的用户名)
    Restart=always(程序崩溃后自动重启,可选)
    
    [Install]
    WantedBy=multi-user.target
    

  3. 保存退出后,输入sudo systemctl daemon-reload,让系统识别新服务。
  4. 输入sudo systemctl enable your service name,设置开机启动。
  5. 想测试的话,输入sudo systemctl start your service name,看看程序是不是启动了。

小编在 Ubuntu 20.04 上用这个方法设置过 Python 脚本开机启动,一开始忘了写 User 参数,导致程序权限不够跑不起来,后来加上就好了。你看,细节多重要。


两种方法对比,该选哪个?

方法 优点 缺点 适合系统
rc.local 步骤简单,容易理解 新系统可能不支持 CentOS 6、Ubuntu 14.04 等老系统
systemd 功能强,支持自动重启 步骤多,配置文件复杂 大部分新系统,如 Ubuntu 18.04+、CentOS 7+

要是你用的是新系统,小编建议直接学 systemd 方法,虽然一开始觉得麻烦,但学会了能解决很多问题;老服务器的话,rc.local 足够用了。


常见问题:命令添加了,开机还是没反应?

  • 问:路径绝对没错,权限也给了,为啥就是不启动?
    答:可能是程序依赖的环境没加载。比如有些脚本需要特定的环境变量,在启动命令前加上source /etc/profile试试,或者把完整的环境变量写在命令里。
  • 问:用 systemd 设置后,启动提示 “failed” 怎么办?
    答:输入sudo journalctl -u your service name,查看错误日志,里面会告诉你具体哪里错了,比如路径不对、权限不足,照着改就行。

小编之前遇到过一个奇葩问题,程序启动需要显示器环境,而 Linux 开机默认没加载图形界面,导致命令执行失败,后来在服务文件里加了Environment=DISPLAY=:0才解决,你说这谁能想到。


小编的一点心得

Linux 添加开机启动命令,别怕出错,多试几次就熟了。新手可以先在虚拟机里练手,设置错了也不怕影响真实系统。记住,不管用哪种方法,绝对路径一定要写对,Linux 不像 Windows 会自动找程序,路径错了就等于白忙活。
另外,别贪多,一次只加一个启动命令,确认没问题了再加下一个,不然出了问题都不知道是哪个命令的错。要是实在搞不定,多看看你所用 Linux 发行版的官方文档,那里的方法最靠谱。希望这些能帮到你,玩 Linux 越来越顺!
Linux 开机启动命令添加方法

最新业务:世纪货币网
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

兔格号 SEO运维 Linux 开机启动命令添加方法 https://www.tglzm.com/seo/wei-seo/4416.html

一个独行者,独揽万古

常见问题

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务