最近在使用 star agent 的過程中,頗感 webssh 開視窗不太友善,不像原本在本地用的多視窗工具那麼友善。不過在使用 Ctrl + z 和 linux 本身的 jobs 指令之後,這個情況得到了改善。
一個很常見的一個場景,在 daily 或者預發上,直接 kill 原本出了問題的 node 程序然後,修改添加一些日志輸出之後,在重新啟動一個 http server,然後用 curl 指令(或者 ab 之類的指令)去請求它測試一下。這個時候就可以使用 ctrl+z 切換背景來節省開多個終端的時間。
$ node index
# ctrl+z
^Z
[1] + 26762 suspended node index
啟動之後直接 ctrl+z 就可以切換到背景。然後可以通過 jobs 來檢視背景程式:
$ jobs
[1] + suspended node index
切換到背景之後,就可以對 server 進行 curl 或者 ab 等其他指令操作。等操作結束後,想檢視 server 的日志,可以重新将其從背景轉到前台來:
$ fg
[1] + 26762 continued node index
# ... 應用日志
這樣就可以不用開多個終端了。直接結束前台的程式可以使用 ctrl+c。
這裡有一個簡單的前台程式和背景程式的概念。通常的背景程式啟動方式是:
node index &
多個背景任務可以通過 %n 來選擇恢複某個到前台。例如:
$ fg %1
就可以恢複 jobs 顯示的編号為 1 的任務。恢複到前台之後可以通過 ctrl+c 結束任務。也可以通過 kill 來直接殺死背景任務:
$ kill %1