Linux 设置开机启动项的几种方法

本文介绍了两种在Linux系统中设置开机启动项的方法:通过编辑rc.local脚本和创建系统服务。前者适用于简单的启动任务,后者则更适用于复杂的服务管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 设置开机启动项的几种方法

方法一:编辑rc.loacl脚本

Ubuntu开机之后会执行/etc/rc.local文件中的脚本。

所以我们可以直接在/etc/rc.local中添加启动脚本。

$ vim /etc/rc.local

方法二:添加一个开机启动服务。

将你的启动脚本复制到 /etc/init.d目录下,并设置脚本权限, 假设脚本为test

$ mv test /etc/init.d/test
$ sudo chmod 755 /etc/init.d/test

将该脚本放倒启动列表中去

$ cd .etc/init.d
$ sudo update-rc.d test defaults 95

注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。

将该脚本从启动列表中剔除

$ cd /etc/init.d
$ sudo update-rc.d -f test remove
### 树莓派开机启动项配置方法 在树莓派上设置开机启动项可以通过多种方式实现。以下是几种常见的方法及其具体配置步骤: #### 方法一:通过 `rc.local` 添加启动项 `/etc/rc.local` 是一个传统的 Linux 脚本文件,在系统启动时会自动执行。可以将需要启动的程序或脚本添加到此文件中。 1. 编辑 `/etc/rc.local` 文件: ```bash sudo nano /etc/rc.local ``` 2. 在 `exit 0` 前添加需要运行的命令,例如: ```bash nohup python3 /home/pi/myscript.py > /dev/null 2>&1 & ``` 上述命令表示后台运行 Python 脚本,并将输出重定向到 `/dev/null`[^4]。 3. 确保脚本具有可执行权限: ```bash sudo chmod +x /etc/rc.local ``` #### 方法二:通过桌面启动应用(适用于图形界面) 如果使用的是带图形界面的树莓派操作系统,可以通过 `~/.config/autostart` 目录添加桌面启动项。 1. 创建或编辑启动文件: ```bash mkdir -p ~/.config/autostart nano ~/.config/autostart/myapp.desktop ``` 2. 在文件中添加以下内容: ```ini [Desktop Entry] Type=Application Name=MyApp Exec=/home/pi/myscript.sh Terminal=false ``` 其中 `Exec` 指定了要执行的脚本路径[^1]。 #### 方法三:通过 `init.d` 添加服务项 将程序作为服务添加到系统中,可以利用 `systemd` 或传统 `init.d` 方法管理。 1. 创建服务文件: ```bash sudo nano /etc/init.d/myservice ``` 2. 在文件中编写启动脚本,例如: ```bash #!/bin/sh ### BEGIN INIT INFO # Provides: myservice # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start myservice at boot time # Description: Enable service provided by myservice. ### END INIT INFO case "$1" in start) echo "Starting myservice" python3 /home/pi/myscript.py & ;; stop) echo "Stopping myservice" pkill -f myscript.py ;; *) echo "Usage: /etc/init.d/myservice {start|stop}" exit 1 ;; esac exit 0 ``` 3. 设置脚本权限并注册服务: ```bash sudo chmod +x /etc/init.d/myservice sudo update-rc.d myservice defaults ``` #### 方法四:通过 `systemd` 配置服务 现代 Linux 系统推荐使用 `systemd` 来管理服务。 1. 创建服务文件: ```bash sudo nano /etc/systemd/system/myservice.service ``` 2. 编写服务配置,例如: ```ini [Unit] Description=My Service After=network.target [Service] ExecStart=/usr/bin/python3 /home/pi/myscript.py Restart=always User=pi [Install] WantedBy=multi-user.target ``` 3. 启用并启动服务: ```bash sudo systemctl enable myservice sudo systemctl start myservice ``` #### 方法五:通过 `crontab` 设置开机任务 `crontab` 的 `@reboot` 选项可以在系统启动时执行指定任务。 1. 编辑用户的 `crontab` 文件: ```bash crontab -e ``` 2. 添加以下行: ```bash @reboot python3 /home/pi/myscript.py > /dev/null 2>&1 & ``` --- ### 注意事项 - 如果程序需要以特定用户身份运行,请确保正确设置用户权限[^3]。 - 使用 `nohup` 或 `&` 符号确保程序在后台运行,避免因终端关闭导致程序终止。 - 对于无限循环的程序,建议添加日志记录功能以便调试和监控。 ```python import logging logging.basicConfig(filename='/home/pi/app.log', level=logging.INFO) while True: try: # 主程序逻辑 pass except Exception as e: logging.error(f"Error occurred: {e}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值