LINUX.ORG.RU
ФорумAdmin

systemd StandardOutput

 


0

1

Хочу разобраться куда попадает вывод демона. Использую простой питоновский скрипт

import http.server
import socketserver

PORT = 8000

Handler = http.server.SimpleHTTPRequestHandler

httpd = socketserver.TCPServer(("", PORT), Handler)

print("serving at port", PORT)

httpd.serve_forever()

с простым конфигом для systemd

[Unit]
Description=Test python http server
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/python_test
ExecStart=/bin/python3 /opt/python_test/test_server.py
User=pytest
StandardOutput=journal

стартую сервер: sudo systemctl start python-test.service, проверяю курлом что он работает, потом смотрю логи с помощью journalctl -u python-test.service и что-то не наблюдаю там строчки «serving at port».

А теперь вопрос, уважаемые знатоки: что я делаю не так? Пробовал менять StandardOutput на tty и на syslog - не выходит каменный цветок.

Ответ на: комментарий от vurdalak

просто убрать StandardOutput - пробовал, не помогло, а Type зачем убирать?

p.s. если что, ос - fedora 21

Goganchic ★★
() автор топика

Попробуй запустить journalctl от рута или же добавить себя в группу systemd-journal.

intelfx ★★★★★
()
Ответ на: комментарий от anonymous

Нет, он по умолчанию ловит и stdout, и stderr. При этом, действительно, StandardOutput=journal указывать незачем, потому что это дефолт.

intelfx ★★★★★
()

УМВР:

[Unit]
Description=Test test test

[Service]
Type=simple
ExecStart=/bin/echo test-test-test

Наиболее вероятно, что глючит твой сервис.

Deleted
()

Попробуй print(«serving at port», PORT, file=sys.stdout)

Siado ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.