美文网首页
[RaspberryPi] 开机服务 - systemd

[RaspberryPi] 开机服务 - systemd

作者: Cocoonshu | 来源:发表于2019-03-01 01:16 被阅读0次

    为了在树莓派启动时执行一个命令或程序,你可以设置一个服务。一旦你有了一个服务,则可以使用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

    相关文章

      网友评论

          本文标题:[RaspberryPi] 开机服务 - systemd

          本文链接:https://www.haomeiwen.com/subject/fffruqtx.html