Anda perlu menyiram stdout
setelah mencetak:sys.stdout.flush()
; jika tidak, perlu beberapa saat untuk mengisi buffer stdout.
Lewati flag python -u untuk unbuffering stdout
nohup python -u test.py &
Python akan menyangga stdout sebaliknya. Ini tidak memerlukan perubahan kode.
Dari halaman manual:
-u Force stdin, stdout and stderr to be totally unbuffered. On systems where it matters, also put stdin, stdout
and stderr in binary mode. Note that there is internal buffering in xreadlines(), readlines() and file-object
iterators ("for line in sys.stdin") which is not influenced by this option. To work around this, you will want
to use "sys.stdin.readline()" inside a "while 1:" loop.
Baru saja mengalami masalah serupa. Skrip saya bekerja dengan baik tanpa nohup. Dengan nohup, skrip akan mogok dengan SyntaxError.
Masalahnya adalah konteks eksekusi nohup yang akan menggunakan alias python
dipetakan ke python2
bukannya python3
.
Memperbaikinya dengan menentukan python3
bukannya python
.
Bagaimana saya bisa menggunakan dialog peringatan dengan Python di linux?
Tidak dapat melepaskan proses anak saat proses utama dimulai dari systemd