The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
непонятки с stdin\stdout, !*! noname_123йцуфыв, 13-Апр-19, 20:33  [смотреть все]
Здравствуйте.

Проблемка в получении вывода родительского для скрипта процесса.

Есть процесс(lighttpd) который запускает скрипт командой "sh -c script" и передает ему свой вывод.
Мне надо получать этот вывод и в зависимости от длинны строки или записывать его или нет.
Если скрипт написан на bash то все работает, и скрипт получает вывод от lighttpd.
Вот простой работающий пример:

#!/bin/sh

char="1"
end="2"

while [ $char != $end ];
do
read ok
echo $ok >>/var/log/lighttpd/log
done

А вот с помощью питона я получить вывод не могу, причем если запускать скрипт вручную и вводить что-либо, то скрипт работает, если передавать ему значения через "echo | ./script.py" то он тоже работает, а вот от lighttpd уже нет.
Простой неработающий пример:

#!/usr/bin/python3

import sys
import time


logfile = open('/var/log/lighttpd/log', mode='at', encoding='UTF-8')

while True:

        line = input()
#       line = sys.stdin()
#       line = sys.stdin.read()
#       line = sys.stdin.readline()
#       line = sys.stdin.readlines()
        logfile.write(line)                    #пишем в файл

logfile.close()

почему так?

  • непонятки с stdin\stdout, !*! noname_123йцуфыв, 23:17 , 13-Апр-19 (1)
    написал модератору чтобы удалил, но пока висит...

    вообщем надо было файл открывать\закрывать в цикле.


    #!/usr/bin/python3

    import sys

    while True:
            logfile = open('/var/log/lighttpd/log', mode='at', encoding='UTF-8')
            line = sys.stdin.readline()
            logfile.write(line)
            logfile.close()





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру