Sto cercando di forzare lo schermo GNU per creare un terminale "virtuale", senza collegarlo, eseguire lo script all'interno e NON terminare la sessione al termine dello script.
Ho provato molte combinazioni, tra cui:
screen -dmS udplistener /share/Sys/autorun/start_udp_listeners.sh
o
screen -S udplistener -X /share/Sys/autorun/start_udp_listeners.sh
e nessuno di loro ha funzionato. Ricevo una sessione senza script eseguito, lo script viene eseguito, ma la sessione viene terminata al termine o viene visualizzato l'errore "Nessuna sessione schermo trovata".
Quello che sto sostanzialmente cercando di fare è eseguire l'ascoltatore UDP, scritto in PHP e farlo funzionare in loop di infinte (non interrompere l'ascolto). Sì, potrei eseguire lo script PHP con &
alla fine, forzando l'esecuzione della CLI PHP come demone. Il problema è che sto usando un pezzo di spazzatura chiamato server (QNAP - mai e poi mai comprare questa spazzatura!) Che sembra ignorarlo. Non appena disconnetto la sessione SSH, gli script si interrompono.
Quindi screen
sembra essere l'unica opzione. Ma non riesco a capire, perché termina la sessione una volta eseguito il comando o lo script termina?
EDIT : ho anche provato esempio trovato in Internet:
screen -dmS name
screen -S name -p windowname -X stuff 'mc
'
Nessuna mancanza! Dopo screen -R name
essermi collegato ( ) vedo che il comandante di mezzanotte NON È stato eseguito. Anche se l'autore di esempio ha detto, lo sarà.
screen
chiusura? A proposito: non riesco ancora ad avere l'idea! Se chiamo screen -dmS name
, creo una finestra separata, che non ha altro da fare. Ma non si chiude automaticamente! Ma quando voglio eseguire qualcosa in quello schermo separato, termina una volta eseguita l'esecuzione. Perché? Non vedo la logica qui. La finestra può non fare nulla, ma la finestra non può fare qualcosa e quindi non fare nulla?
&
alla fine), a causa del buggy server (QNAP), sono chiusi al termine della sessione (mi è stato detto che non dovrebbero essere su Linux normale, se eseguiti con &
). Quindi non sto cercando di fare nulla dopo aver start_udp_listeners.sh
terminato, ma solo come impedire che la sessione venga interrotta. Finché non lo è, i miei ascoltatori PHP funzionano bene.
screen
, crei solo una finestra per eseguire un singolo comando. Quando il comando termina, la finestra si chiude escreen
non rimane più nulla da fare, quindi esce.