为了在树莓派启动时执行一个命令或程序,你可以设置一个服务。一旦你有了一个服务,则可以使用start
/stop
/enable
/disable
来控制服务的执行。
创建服务
在Pi上,你需要以root身份在/etc/systemd/system目录下创建一个.service
文件来创建服务。如下:
background_music.service
[Unit]
Description=BackgroundMusic
After=network.target
[Service]
ExecStart=/usr/bin/python3 -u play_audio.py
WorkingDirectory=/home/pi/myscript
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
在这个示例中,服务会在使用python3
来执行/home/pi/myscript目录下的play_audio.py
脚本。服务不仅限于执行python脚本,修改ExecStart
后的命令即可执行程序或者shell命令。
启动/停止服务
- 使用下面的命令可以启动一个服务:
sudo systemctl start background_music.service
- 使用下面的命令可以停止一个服务:
sudo systemctl stop background_music.service
开机启动服务
- 使用下面的命令把服务设置为开机自动启动
sudo systemctl enable background_music.service
- 使用下面的命令取消服务的开机自动启动
sudo systemctl disable background_music.service
需要注意服务的启动依赖顺序:
- 服务需要在它所依赖的服务启动之后再启动。background_music.service服务被指定在网络有效之后才启动(
After=network.target
) - 服务的启动顺序和依赖可以在
.service
文件里配置
更多关于服务控制的细节,可以参考man systemctl
。
网友评论