Запуск файла Python в качестве службы приводит к состоянию кода выхода 1 - PullRequest
1 голос
/ 09 июля 2019

Резюме:

Сценарий python, использующий apshceduler, не может быть загружен как сервис с кодом выхода 203 / EXEC. Важно отметить, что тот же сценарий, предназначенный для запуска каждые 10 секунд с использованием синтаксиса while True:, очень хорошо работает как демон (служба).

Детали

Я написал простую программу test.py. Каждые 10 секунд он добавляет некоторый файл .txt со строкой some. Когда я пытаюсь запустить его как сервис-демон, он выходит с кодом ошибки. , Само по себе, не используя его в качестве демона (службы), он работает нормально. Также, если я не использую apscheduler при написании файла test.py, то служба работает без сбоев. Я приведу здесь весь код для деталей, включая systemctl status

Код

файл test.py

import os, glob, shutil
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
def test():
    appendFile = open(r'/home/sangharsh/code/a.txt', 'a')
    appendFile.write("Jai Bhim \n" )
    appendFile.close()
sched.add_job(test, 'interval', seconds=10)

sched.start()

Он расположен @ - / home / sangharsh / code / workingWithFiles / Чтобы запустить его как демон, я создаю служебный файл -

файл конфигурации службы

[Unit]
Description=Test Service
After=multi-user.target
Conflicts=getty@tty1.service

[Service]
Type=simple
ExecStart=/usr/bin/env python3 /home/sangharsh/code/workingWithFiles/test.py
StandardInput=tty-force

[Install]
WantedBy=multi-user.target

Этот файл находится @ - / lib / systemd / system /

Я перезапускаю демон-

sudo systemctl daemon-reload

Затем включите файл test.service -

sudo systemctl enable test.service

и для запуска test.service

sudo systemctl start test.service

и намечать статус

sudo systemctl status test.service

systemctl status показывает:

● test.service - Test Service
   Loaded: loaded (/lib/systemd/system/test.service; enabled; vendor preset: ena
   Active: failed (Result: exit-code) since Tue 2019-07-09 23:28:10 IST; 13s ago
  Process: 5272 ExecStart=/usr/bin/env python3 /home/sangharsh/code/workingWithF
 Main PID: 5272 (code=exited, status=1/FAILURE)

Jul 09 23:28:10 sangharsh-HP-240-G4-Notebook-PC systemd[1]: Started Test Service
Jul 09 23:28:10 sangharsh-HP-240-G4-Notebook-PC systemd[1]: test.service: Main p
Jul 09 23:28:10 sangharsh-HP-240-G4-Notebook-PC systemd[1]: test.service: Failed

Я передал этот вопрос. Я попробовал варианты, но это не помогает. И этот не очень применим, так как имеет проблемы с разрешениями.

1 : https://unix.stackexchange.com/q/472950/361166 `` `

Пожалуйста, руководство.

...