Запущение приложения Фляги на запуске с systemd

У меня есть следующий systemd сервис для запущения моего приложения фляги:

[Unit]
Description=My Flask server
After=network.target

[Service]
User=ubuntu
ExecStart=/home/ubuntu/my-server/script.py
WorkingDirectory=/home/ubuntu/my-server/
Restart=on-failure
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Однако, когда я работаю

systemctl start my-server.service

Я получаю следующее состояние

my-server.service - My Flask server
   Loaded: loaded (/etc/systemd/system/my-server.service; enabled; vendor preset: enabled)
   Active: active (exited) (Result: exit-code) since Wed 2017-06-21 22:24:18 UTC; 8min ago
 Main PID: 8407 

(code=exited, status=203/EXEC)

Как я препятствую тому, чтобы сервер Фляги вышел? Когда я запускаю скрипт непосредственно с

/home/ubuntu/my-server/script.py

это хорошо работает. Но если я выполняю его с systemd, сервер сразу выходит.

2
задан 22 June 2017 в 01:41

2 ответа

Решенный моя собственная проблема. Я должен был изменить владельца файла, чтобы соответствовать systemd сценарию и затем сделать его исполняемым файлом:

chown ubuntu /home/ubuntu/my-server/script.py
chmod +x /home/ubuntu/my-server/script.py
1
ответ дан 2 December 2019 в 02:46

Не уверенный, если это помогает, но , это является сервисным файлом, который я использую для управления приложением фляги для персонального проекта. Я думаю по умолчанию, systemd запустит скрипт с оболочкой/bin/sh без персонализации. Вы могли бы хотеть попытаться переключиться на оболочку/bin/sh и выполнить Вашу команду. Может быть отсутствие переменной среды.

файл Единицы из ссылки:

[Unit]
Description=Persistent Transactions API
After=syslog.target network.target electrum.service

[Service]
User=percy
Group=percy
ExecStart=/bin/bash -c "source /opt/persist_transaction/bin/activate ; /opt/persist_transaction/api.py -c /opt/persist_transaction/config.ini"
Restart=always

[Install]
WantedBy=multi-user.target
2
ответ дан 2 December 2019 в 02:46

Другие вопросы по тегам:

Похожие вопросы: