GNU ekranını, "sanal" bir terminal oluşturmaya zorlamadan, onu eklemeden, içinde komut dosyasını çalıştırmaya ve komut dosyası sona erdiğinde oturumu sonlandırmaya DEĞİLDİR.
Aşağıdakiler dahil birçok kombinasyonu denedim:
screen -dmS udplistener /share/Sys/autorun/start_udp_listeners.sh
veya
screen -S udplistener -X /share/Sys/autorun/start_udp_listeners.sh
ve hiçbiri işe yaramadı. Ben komut dosyası olmadan oturumu alıyorum, komut dosyası çalıştırıyor, ancak işlem tamamlandığında oturum sonlandırılıyor veya "Ekran oturumu bulunamadı" hatası alıyorum.
Temel olarak yapmaya çalıştığım, UDP dinleyicisini çalıştırmak, PHP ile yazılmış ve infinte döngüsünde çalışmasını sağlamak (dinlemeyi kesmeyin). Evet - PHP betiğini &
sonunda çalıştırabilir, PHP CLI'yi daemon olarak çalıştırmaya zorlayabilirdim. Sorun şu ki, sunucu (QNAP - asla, asla bu çöplüğü satın almayın!) Adlı bir önemsiz parça kullanıyorum. SSH oturumunu kapattığımda, komut dosyaları durur.
Bu yüzden screen
tek seçenek gibi görünüyor. Ama anlayamıyorum, neden komut çalıştırıldığında veya komut dosyası bittiğinde oturumu sonlandırıyor?
EDIT : İnternette bulunan bir örneği de denedim:
screen -dmS name
screen -S name -p windowname -X stuff 'mc
'
Yokluk yok! Taktıktan sonra ( screen -R name
) Midnight Komutanının idam edilmediğini görüyorum. Örnek yazar söylemiş olmasına rağmen olacak.
screen
kapanmasını engellemenin bir yolu var mı? BTW: Fikri hala anlamadım! Eğer screen -dmS name
ararsam, yapacak hiçbir şeyi kalmayan, ayrılmış bir pencere yaratırım. Ancak otomatik olarak kapanmaz! Ancak o ayrılmış ekranda bir şey çalıştırmak istediğimde, yürütme işlemi bittiğinde biter. Niye ya? Burada mantık göremiyorum. Pencerenin hiçbir şey yapmamasını sağlayabilirsiniz, fakat pencerenin bir şey yapıp ardından hiçbir şey yapmamasını sağlayamıyor musunuz?
&
en sonunda) daemon olarak çalıştırılsa da , buggy sunucusu (QNAP) nedeniyle, oturum sona erdiğinde sonlandırılırlar (bana söylenirse normal Linux'ta çalıştırılmamalılardı &
). Bu yüzden start_udp_listeners.sh
bittikten sonra bir şey yapmaya çalışmıyorum , sadece oturumun sonlandırılmasını nasıl önleyeceğimi merak ediyorum . Olmadığı sürece, PHP dinleyicilerim gayet iyi çalışıyor.
screen
tek bir komut çalıştırmak için sadece bir pencere oluşturursunuz. Komut çıktığında, pencere kapanır vescreen
yapacak hiçbir şeyi kalmaz, bu yüzden çıkar.