Bir ekran oturumunda çalışan bir komut dosyasını başlatmayı ve durdurmayı içeren bir bakım rutinini otomatikleştirmeye çalışıyorum. Benim yaklaşımım, ekran oturumunu sonlandırmak ve ardından onu yeniden başlatmak ve ekrana eklemek zorunda kalmadan bir ekran oluşturmak ve bir komutu geçmek için yetenekleri kullanarak bir komut dosyasından komutu çalıştırmak.
Ancak bu konuda zorluk yaşıyorum. Ekranı kullanarak bağlamadan doğru bir şekilde oluşturabilirim screen -d -m -S screen_name
. Ancak, aşağıdakileri temel alan bir komut çalıştırırsam:
screen -S screen_name-X stuff "command 1"'echo -ne '\015''"command 2"'echo -ne '\015''
yankı -ne '\ 015' ile tek tırnaklar yerine geri tepmelerle sarılır. Kullandığım komutlar bir dizine ilerlerken ve orada bulunan bir betiği çalıştırırken, kullanıcının enter tuşuna basmasını simüle etmektir. Bu komut çalışır, ancak yalnızca ekran oluşturulduktan sonra bir ekrana eklenmişse. Ekran oluşturma ve içindeki komutları çalıştırma işlemini otomatikleştirmeye çalıştığım için bir betiğin içine eklemek ve ayırmaktan kaçınmak istiyorum. Ekran içinde yürütmek ve sonuçlarıma göre düzenlemek için ihtiyaç duyduğum komutları içeren bir kabuk betiği oluşturma önerisini deneyeceğim.
Bir ekran oluşturup ekran içinde bir komutu bir komutla veya komut oluşturmadan önce ancak komutun yürütülmesinden önce ekrana eklemek zorunda kalmadan çalıştırmanın bir yolu var mı?
Şimdiden teşekkürler.
** Güncelleme - Bir kabuk betiği içinde yürütmem gereken komutları yerleştirme önerisini denedim. Başarılı bir şekilde bir ekran oluşturabildim ve komutları ekran içinden yürütebildim, ancak betiğin çalışmayı durdurduğu zamanki davranışı alıyorum ekran da kapanıyor. Komut dosyası, yalnızca sys yöneticisinin bilgisiyle veya geliştirmeye çalıştığım komut dosyasıyla durması gereken bir günlük komut dosyası olduğundan, bu sorun olmamalıdır, ancak ekran kurulumunun ekranın bu şekilde olması tercih edilir. script durdurulursa kaybolmaz. Bu davranışa ulaşmak mümkün mü? **
.screenrc
çizgiyi içeren bir özel kullanabilirsiniz ve winodw'u kapatmak veya komutu pencerede tekrar çalıştırmak için basabilirsiniz . Benim varsayılan .screenrc için bu var. zombie kr
k
r