如何測試 screen 是否啟動,然後在 screen 中執行命令並將其分開?

如何測試 screen 是否啟動,然後在 screen 中執行命令並將其分開?
screen -list
There are screens on:
        4278.chat       (07/16/15 14:26:47)     (Detached)
        15127.notifier  (07/16/15 13:27:57)     (Detached)

我的目標是:

  • 如果聊天螢幕未啟動,則啟動它,否則關閉它。
  • 在聊天會話中執行命令(例如node chat.js:)
  • 分離聊天會話

答案1

多部分答案:

  • 如果聊天螢幕未啟動,則啟動它,否則關閉它。
screen -S chat -X quit || screen -S chat

如果這就是您的意思,也可以detach不終止螢幕會話。

  • 在聊天會話中執行命令(例如:node chat.js)

如果您想啟動一個新螢幕並執行命令,那麼

screen -dm -S chat && screen -S chat -X stuff 'command-to-execute-in-screen-subshell
'

請注意引號內嵌入的換行符。如果螢幕已經在運行,您可以跳過前半部分。

  • 分離聊天會話
screen -S chat -X detach

另請參閱第一個問題的答案。

所有這些都在手冊中得到合理記錄。

相關內容