Сценарий оболочки Daemontools войти в multilog

У меня есть следующий сценарий оболочки:

#!/bin/sh
exec 2>&1
echo "Starting ..."
python /home/services/example.py

Скрипт python состоит только из команды печати. Приведенный выше сценарий является демоном daemontools, а также включен простой механизм журнала (multilog). Однако, в main/log/currentI see the line » Starting …»но не напечатанные команды из скрипта python.

Я делаю что-то не так с вызовом или я что-то забыл?

Редактировать
Скрипт python, который я пытаюсь запустить:

from time import sleep
import sys

sys.stdout.write("Hello World")
print "Hello World"

while 1:
    sys.stdout.write("Hello world")
    sleep(10)

2 ответа

  1. Многократный запуск

    sys.stdout.write("Hello world")
    

    …просто создает единую огромную линию формыHello worldHello worldHello world, без гарантии, что она когда-либо смывается.

    Поместите новые строки на любое содержимое, которое вы пишете, которое не имеет их неявно (как через print), и очистите буферы при прямом использовании sys.stdout.write():

    while 1:
        sys.stdout.write("Hello world\n")  # add a newline
        sys.stdout.flush()                 # flush the buffer