Saya memiliki server berbasis python yang saya mulai dari terminal. Terminal khusus ini kemudian memberikan kontrol ke program, dan program menggunakannya sebagai semacam jendela logging, sampai ditutup. Apakah ini normal, atau haruskah saya entah bagaimana mencoba memulai program dengan cara lain di mana ia hanya akan ditampilkan sebagai proses aktif? Jika saya menutup terminal dari mana saya memulai program, program mati bersamanya.
Terima kasih
command-line
python
services
U2ros
sumber
sumber
Jawaban:
Bahkan bash lama menggunakan & untuk mengirim proses ke latar belakang, tetapi ada beberapa cara lain juga .. tetapi dua dasarnya adalah ini:
Beberapa perintah lain yang bermanfaat:
sumber
Ubah menjadi daemon (layanan)
daemon --name="yourservicename" --output=log.txt sh yourscript.sh
sumber
Penggunaan
&
menyebabkan program berjalan di latar belakang, alih-alih memblokir shell sampai program berakhir.sumber
dixon@dixon-vaio:~$ nautilus & [1] 11835
. Ini mengembalikan proses id dan Anda akan meminta shell baru. Juga periksa ini: http://unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and .Anda juga bisa menggunakan:
ini skrip init.d untuk memulai dan menghentikan program di latar belakang.
sumber
Dari terminal Anda juga dapat menjalankan
screen
atau menindaklanjuti perintah Anda&
. Cara mudah untuk menjalankan proses yang berkelanjutan.sumber
&
latar belakang proses dalam hal ini adalah sedikit, menurut pendapat saya. OP menyatakan bahwa servernya log ke stdout demikian, dengan&
terminalnya akan berantakan dengan output. Juga karena OP menyebutkan menutup terminal , OP tidak akan dapat melakukan foreground proses lagi dan semua log-output akan hilang. Lebih baik, setidaknya, untuk mengarahkan ulang ke file log atau tetap denganscreen
setup - tapi kemudian tolong jelaskan dasar-dasarscreen
untuk OP (lepaskan / lampirkan / dll)