0
私はpythonスクリプトを持っています。その出力はログファイルにパイプされています。私はos.exec呼び出しでファイルを再起動することができますが、そうした場合、新しいプロセスはその出力をログファイルに書き出しません。プロセスを再起動した後、どのように出力リダイレクションを保持できますか?os.execの後に出力をファイルにリダイレクト*
私のスクリプトの開始:
python3.6 script.py >> home/pi/log/telegram_bot.log 2>&1 &
マイリスタートライン:
import os
import sys
os.execv(sys.executable, [sys.executable] + sys.argv)
サブプロセスではなくos.execvを使用している理由は何ですか? – Alan
@Alan彼らはさまざまな目的を果たします:サブプロセスは子プロセスを生成し(2つのままにしておきます)、execは現在のプロセスを新しいプロセスに変換します。 @Nexxurs、私は['exec *'](https://docs.python.org/3.6/library/os.html#process-management)ファミリーがストリームをリダイレクトするためのインターフェースを提供しているとは思わない。しかし、あなたの主な機能をもう一度呼び出すのではなく、なぜあなたのプロセスを実行するのが面倒なのでしょうか? – Will
これはこちら[こちら](https://stackoverflow.com/questions/8500047/how-to-inherit-stdin-and-stdout-in-python-by-using-os-execv) – user2722968