Linux系统设置开机自启动.py脚本(树莓派Ubuntu)
方法一:使用systemd
-
创建服务文件:
在/etc/systemd/system/
目录下创建一个新的服务文件,例如my_script.service
:sudo nano /etc/systemd/system/my_script.service
-
编写服务配置:
在服务文件中添加以下内容(根据需要调整路径和用户):[Unit] Description=My Python Script [Service] ExecStart=/usr/bin/python3 /path/to/your/script.py WorkingDirectory=/path/to/your/ StandardOutput=journal StandardError=journal Restart=always User=your_username [Install] WantedBy=multi-user.target
- ExecStart:指定Python解释器和脚本路径。
- WorkingDirectory:脚本的工作目录。
- User:指定执行脚本的用户。
-
重新加载
systemd
配置:sudo systemctl daemon-reload
-
启用服务:
sudo systemctl enable my_script.service
-
启动服务(可选):
sudo systemctl start my_script.service
方法二:使用cron
任务
-
打开
crontab
编辑器:crontab -e
-
添加新任务:
在文件末尾添加以下行(替换路径和用户):@reboot /usr/bin/python3 /path/to/your/script.py
@reboot
表示在系统启动时运行该命令。
-
保存并退出。
方法三:使用init.d
(适用于较老的系统)
-
创建脚本:
在/etc/init.d/
目录下创建一个新的脚本,例如my_script
:sudo nano /etc/init.d/my_script
-
编写脚本内容:
#!/bin/sh ### BEGIN INIT INFO # Provides: my_script # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start my script at boot time ### END INIT INFO case "$1" in start) echo "Starting my_script" /usr/bin/python3 /path/to/your/script.py & ;; stop) echo "Stopping my_script" killall python3 ;; *) echo "Usage: /etc/init.d/my_script {start|stop}" exit 1 ;; esac exit 0
-
使脚本可执行:
sudo chmod +x /etc/init.d/my_script
-
添加到启动项:
sudo update-rc.d my_script defaults
以上方法各有优缺点,systemd
是现代Linux发行版中推荐的方式,具有更好的管理和监控功能。cron
方法简单易用,适合小脚本;init.d
则适用于较老的系统。