簡體   English   中英

啟動后嘗試使用 systemd 運行服務

[英]Trying to run a service using systemd after startup

我在下面列出了我輸入它們的步驟。 我無法讓 Pi(Raspbian GNU/Linux Buster (10))在啟動后啟動 alarm.service。 當我登錄到 Pi 並從 GUI 手動啟動 alarm.service 時,它運行的腳本也是如此——(腳本被編寫為循環)唯一的問題是我無法讓 alarm.service 在沒有圖形用戶界面。 在所有其他服務都啟動並運行之后讓它最后啟動真是太好了。

1. sudo nano /home/pi/alarm_service.py - (fyi: this script runs nicely when i launch it manually from command prompt after pi has booted and i am logged in)
2. sudo nano /etc/systemd/system/alarm.service

[Unit]
Description=Alarm Service
After=multi-user.target
Conflicts=getty@tty1.service
[Service]
Type=simple
ExecStart=/home/pi/alarm_service.py
StandardInput=tty-force
[Install]
WantedBy=multi-user.target

3. sudo chmod 644 /etc/systemd/system/alarm.service
4. sudo systemctl daemon-reload
5. sudo systemctl enable alarm.service
6. sudo systemctl start alarm.service

錯誤日志:alarm.service - 警報服務已加載:已加載(/etc/systemd/system/alarm.service;已啟用;供應商預設:已啟用)活動:自 2021 年 5 月 14 日星期五 18 日以來失敗(結果:退出代碼):美國東部標准時間 57:24; 1 分鍾 18 秒前 進程:501 ExecStart=/home/pi/alarm_service.py (code=exited, status=1/FAILURE) Main PID: 501 (code=exited, status=1/FAILURE)

5 月 14 日 18:57:24 raspberrypi alarm_service.py[501]:文件“/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py”,第 10 行 5 月 14 日 18:57:24 raspberrypi alarm_service.py[501]: sock = self._create_socket_connection() 5 月 14 日 18:57:24 raspberrypi alarm_service.py[501]: 文件“/usr/local/lib/python2.7/dist-packages/paho/mqtt /client.py”,第 35 行 5 月 14 日 18:57:24 raspberrypi alarm_service.py[501]:返回 socket.create_connection(addr, source_address=source, timeout=sel 5 月 14 日 18:57:24 raspberrypi alarm_service.py[501 ]:文件“/usr/lib/python2.7/socket.py”,第 575 行,在 create_connection 5 月 14 日 18:57:24 raspberrypi alarm_service.py[501]:引發錯誤 5 月 14 日 18:57:24 raspberrypi alarm_service。 py[501]: socket.error: [Errno 101] Network is unreachable May 14 18:57:24 raspberrypi systemd[1]: alarm.service: Main process exited, code=exited, status=1/FAILURE May 14 18: 57:24 raspberrypi systemd[1]:alarm.service:失敗,結果為“exit-code”。5 月 14 日 18:57:24 raspberrypi systemd[1]:無法啟動 Alar 米服務。

我遵循的原則是使 systemd 為腳本創建的環境盡可能類似於我用於開發它的環境。

為了測試,我只是在我執行此操作的 VM 上運行了shutdown -r now 在啟動時,瞧。

$ systemctl status mypython
● mypython.service
   Loaded: ...etc.

我設置的文件是

less /etc/systemd/system/multi-user.target.wants/mypython.service

內容

[Unit]
        Description=mypython
        
        [Service]
        WorkingDirectory=/home/me
        ExecStart=/usr/bin/python3 /home/me/mypython.py ./config.yaml
        Restart=always
        RestartSec=5
        User=me
        Group=me

        [Install]
        WantedBy=multi-user.target

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM