9.3.1 管理遠(yuǎn)程會話

2022-05-31 11:27 更新

screen命令能做的事情非常多:可以用-S參數(shù)創(chuàng)建會話窗口;用-d參數(shù)將指定會話進(jìn)行離線處理;用-r參數(shù)恢復(fù)指定會話;用-x參數(shù)一次性恢復(fù)所有的會話;用-ls參數(shù)顯示當(dāng)前已有的會話;以及用-wipe參數(shù)把目前無法使用的會話刪除,等等。

下面創(chuàng)建一個名稱為backup的會話窗口。請各位讀者留心觀察,當(dāng)在命令行中敲下這條命令的一瞬間,屏幕會快速閃動一下,這時就已經(jīng)進(jìn)入screen服務(wù)會話中了,在里面運行的任何操作都會被后臺記錄下來。

  1. [root@linuxprobe ~]# screen -S backup
  2. [root@linuxprobe ~]#

執(zhí)行命令后會立即返回一個提示符。雖然看起來與剛才沒有不同,但實際上可以查看到當(dāng)前的會話正在工作中。

  1. [root@linuxprobe ~]# screen -ls
  2. There is a screen on:
  3. 32230.backup (Attached)
  4. 1 Socket in /var/run/screen/S-root.

要想退出一個會話也十分簡單,只需在命令行中執(zhí)行exit命令即可。

  1. [root@linuxprobe ~]# exit
  2. [screen is terminating]

在日常的生產(chǎn)環(huán)境中,其實并不是必須先創(chuàng)建會話,然后再開始工作??梢灾苯邮褂胹creen命令執(zhí)行要運行的命令,這樣在命令中的一切操作也都會被記錄下來,當(dāng)命令執(zhí)行結(jié)束后screen會話也會自動結(jié)束。

  1. [root@linuxprobe ~]# screen vim memo.txt
  2. welcome to linuxprobe.com

為了演示screen不間斷會話服務(wù)的強大之處,我們先來創(chuàng)建一個名為linux的會話,然后強行把窗口關(guān)閉掉(這與進(jìn)行遠(yuǎn)程連接時突然斷網(wǎng)具有相同的效果):

  1. [root@linuxprobe ~]# screen -S linux
  2. [root@linuxprobe ~]#
  3. [root@linuxprobe ~]# tail -f /var/log/messages
  4. Feb 20 11:20:01 localhost systemd: Starting Session 2 of user root.
  5. Feb 20 11:20:01 localhost systemd: Started Session 2 of user root.
  6. Feb 20 11:21:19 localhost dbus-daemon: dbus[1124]: [system] Activating service name='com.redhat.SubscriptionManager' (using servicehelper)
  7. Feb 20 11:21:19 localhost dbus[1124]: [system] Activating service name='com.redhat.SubscriptionManager' (using servicehelper)
  8. Feb 20 11:21:19 localhost dbus-daemon: dbus[1124]: [system] Successfully activated service 'com.redhat.SubscriptionManager'
  9. Feb 20 11:21:19 localhost dbus[1124]: [system] Successfully activated service 'com.redhat.SubscriptionManager'
  10. Feb 20 11:30:01 localhost systemd: Starting Session 3 of user root.
  11. Feb 20 11:30:01 localhost systemd: Started Session 3 of user root.
  12. Feb 20 11:30:43 localhost systemd: Starting Cleanup of Temporary Directories...
  13. Feb 20 11:30:43 localhost systemd: Started Cleanup of Temporary Directories.

由于剛才關(guān)閉了會話窗口,這樣的操作在傳統(tǒng)的遠(yuǎn)程控制中一定會導(dǎo)致正在運行的命令也突然終止,但在screen不間斷會話服務(wù)中則不會這樣。我們只需查看一下剛剛離線的會話名稱,然后嘗試恢復(fù)回來就可以繼續(xù)工作了:

  1. [root@linuxprobe ~]# screen -ls
  2. There is a screen on:
  3. 13469.linux (Detached)
  4. 1 Socket in /var/run/screen/S-root.
  5. [root@linuxprobe ~]# screen -r linux
  6. [root@linuxprobe ~]#
  7. [root@linuxprobe ~]# tail -f /var/log/messages
  8. Feb 20 11:20:01 localhost systemd: Starting Session 2 of user root.
  9. Feb 20 11:20:01 localhost systemd: Started Session 2 of user root.
  10. Feb 20 11:21:19 localhost dbus-daemon: dbus[1124]: [system] Activating service name='com.redhat.SubscriptionManager' (using servicehelper)
  11. Feb 20 11:21:19 localhost dbus[1124]: [system] Activating service name='com.redhat.SubscriptionManager' (using servicehelper)
  12. Feb 20 11:21:19 localhost dbus-daemon: dbus[1124]: [system] Successfully activated service 'com.redhat.SubscriptionManager'
  13. Feb 20 11:21:19 localhost dbus[1124]: [system] Successfully activated service 'com.redhat.SubscriptionManager'
  14. Feb 20 11:30:01 localhost systemd: Starting Session 3 of user root.
  15. Feb 20 11:30:01 localhost systemd: Started Session 3 of user root.
  16. Feb 20 11:30:43 localhost systemd: Starting Cleanup of Temporary Directories...
  17. Feb 20 11:30:43 localhost systemd: Started Cleanup of Temporary Directories.
  18. Feb 20 11:40:01 localhost systemd: Starting Session 4 of user root.
  19. Feb 20 11:40:01 localhost systemd: Started Session 4 of user root.

如果我們突然又想到了還有其他事情需要處理,也可以多創(chuàng)建幾個會話窗口放在一起使用。如果這段時間內(nèi)不再使用某個會話窗口,可以把它設(shè)置為臨時斷開(detach)模式,隨后在需要時再重新連接(attach)回來即可。這段時間內(nèi),在會話窗口內(nèi)運行的程序會繼續(xù)執(zhí)行。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號