Saya mencoba untuk memaksa layar GNU untuk membuat terminal "virtual", tanpa melampirkannya, jalankan skrip di dalamnya dan TIDAK mengakhiri sesi begitu skrip berakhir.
Saya mencoba banyak kombinasi, termasuk:
screen -dmS udplistener /share/Sys/autorun/start_udp_listeners.sh
atau
screen -S udplistener -X /share/Sys/autorun/start_udp_listeners.sh
dan tidak ada yang bekerja. Saya mendapatkan sesi tanpa skrip dieksekusi, skrip dieksekusi, tetapi sesi dihentikan setelah selesai atau saya mendapatkan kesalahan "Tidak ada sesi layar ditemukan".
Apa yang saya coba pada dasarnya adalah menjalankan pendengar UDP, ditulis dalam PHP dan membuatnya bekerja dalam infinte loop (jangan putus mendengarkan). Ya - Saya bisa menjalankan skrip PHP &
di akhir, memaksa PHP CLI dijalankan sebagai daemon. Masalahnya adalah, bahwa saya menggunakan sepotong sampah yang disebut server (QNAP - tidak pernah membeli sampah ini!) Yang sepertinya mengabaikan ini. Segera setelah saya keluar dari sesi SSH, skrip berhenti.
Jadi screen
sepertinya menjadi satu-satunya pilihan. Tapi saya tidak mengerti, mengapa ini mengakhiri sesi setelah dieksekusi perintah atau skrip berakhir?
EDIT : Saya juga mencoba contoh yang ditemukan di Internet:
screen -dmS name
screen -S name -p windowname -X stuff 'mc
'
Tidak ada kekurangan! Setelah melampirkannya ( screen -R name
) Saya melihat bahwa Komandan Tengah Malam belum dieksekusi. Meskipun contoh penulis katakan, itu akan menjadi.
screen
dari penutupan? BTW: Saya masih belum mengerti! Jika saya menelepon screen -dmS name
, saya membuat jendela terpisah, yang juga tidak ada hubungannya. Tetapi itu tidak ditutup secara otomatis! Tetapi ketika saya ingin mengeksekusi sesuatu di layar terpisah itu, itu berakhir setelah eksekusi dilakukan. Mengapa? Saya tidak melihat logika di sini. Dapat membuat jendela tidak melakukan apa-apa, tetapi tidak bisa membuat jendela melakukan sesuatu dan kemudian tidak melakukan apa-apa?
&
di akhir), karena server buggy (QNAP), mereka dihentikan ketika sesi berakhir (saya diberitahu, mereka seharusnya tidak di Linux normal, jika dieksekusi dengan &
). Jadi saya tidak ingin melakukan apa pun setelah start_udp_listeners.sh
selesai, hanya bagaimana mencegah sesi tidak diakhiri. Selama tidak, pendengar PHP saya berfungsi dengan baik.
screen
, Anda hanya membuat satu jendela untuk menjalankan satu perintah. Ketika perintah keluar, jendela ditutup danscreen
tidak ada lagi yang harus dilakukan, jadi itu keluar.