Birden çok ekran oturumunu otomatik olarak nasıl başlatabilirim?


21

Başlatılan screen, farklı adlarla dört oturum oluşturan ve dört farklı komut çalıştıran bir komut oluşturmaya çalışıyorum .

Bunu manuel olarak nasıl yapacağımı biliyorum:

1. screen
2. ./command1 args
3. CTRL-A :sessionname Session 1
4. CTRL-A C
5. (GOTO 2)

Bunu bir bash betiği veya başka bir şeyle yapabilir miyim? Bunu nasıl yaparım?

Yanıtlar:


15

screen -dmS "$SESSION_NAME" "$COMMAND" "$ARGUMENTS"$COMMANDarka planda çalışan bir ekran çıkar .

screen -lsİle aktif oturumları görebilir ve ile yeniden bağlanabilirsiniz screen -r "$SESSION_NAME".

Ölü seanslarla öldürülebilir screen -wipe.


İşi hallediyor!
Hughes

1
Bu komut, her komut için yeni bir ekran oturumu oluşturur. Her komut için bir pencere içeren tek bir ekran oturumu oluşturmak için kullanılamaz (sorudaki manuel adımların yaptığı gibi). Bu nedenle, soruyu cevaplamamaktadır ve .screenrcbunun yerine aşağıdaki cevabın kabul edilmiş olması gerekir.
Tey'

Yaptığınız tek şey ucuz bir şekilde arka planda çalışan bir şey tutmak istiyorsanız, çoklu pencereler bir oturum için gerçek bir avantaj var mı?
LawrenceC

29

Birden çok oturumu otomatik olarak başlatmak için bir .screenrcdosya, ekran için bir yapılandırma dosyası ayarlayın . İçinde oturum oluşturabilir, programları başlatabilir, çalışma dizinini değiştirebilir vb. Ekran oturumumu başlatmak için kullanıyorum.

Bir .screenrc dosyası için basit inceleme:

# don't display the copyright page
startup_message off

# increase scrollback buffer size
defscrollback 10000

# create windows
screen -t TODO vim TODO.txt
chdir src
screen -t coding vim main.c
screen -t run 

Yukarıdaki screenkomutların her biri bir ekran oturumu oluşturur. -toturumun başlığını ayarlar; satırın geri kalanı çalıştırılacak komut ve parametreleri.

Böylece, birinci ve ikinci screensatır bir oturum başlatır ve vimiçeride başlar. Üçüncüsü sadece bir seans başlatır ve sizi anında bırakır. chdirsonraki tüm oturumlar için çalışma dizinini değiştirir.

Birden fazla .screenrcdosyaya sahip olmak istiyorsanız, bunları istediğiniz şekilde adlandırın ve ile birini seçin screen -c myscreenrc.


5

D, m, S seçeneklerini birlikte kullanabilirsiniz:

screen -Sdm s1
screen -Sdm s2
screen -Sdm s3

S: Ekran oluşturmak için

d: ekrandan ayır

m: Ekranın başka bir ekrandan çağrılıp çağrılmadığına bakılmaksızın ekran oluşturulmasını zorlamak için.


3
İlginç, screen -dmS s1vb. Yerine böyle yazabilirsiniz . Seçenekleri gruplarken argümanlı olanın son olması gerekmediğini bilmiyordum.
Tomasz Gandor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.