![如何测试屏幕是否启动,然后在屏幕中执行命令并将其分离?](https://linux22.com/image/1458011/%E5%A6%82%E4%BD%95%E6%B5%8B%E8%AF%95%E5%B1%8F%E5%B9%95%E6%98%AF%E5%90%A6%E5%90%AF%E5%8A%A8%EF%BC%8C%E7%84%B6%E5%90%8E%E5%9C%A8%E5%B1%8F%E5%B9%95%E4%B8%AD%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E5%B9%B6%E5%B0%86%E5%85%B6%E5%88%86%E7%A6%BB%EF%BC%9F.png)
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
另请参阅第一个问题的答案。
所有这些都在手册中合理记录。