如何测试屏幕是否启动,然后在屏幕中执行命令并将其分离?

如何测试屏幕是否启动,然后在屏幕中执行命令并将其分离?
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

另请参阅第一个问题的答案。

所有这些都在手册中合理记录。

相关内容