我有一个屏幕会话,我运行了几个窗口,这些窗口正在运行几个在终端窗口中运行控制台的应用程序(这就是为什么我在屏幕中运行它们的原因)。
我想杀死所有的窗口,然后添加两个新的窗口,基本上只是重新运行命令以再次启动程序。
由于这可能有点令人困惑,如果我只是尝试在命令行上手动执行此操作,我会这样做:
$ screen -x programs
$ (Hit Control-a + \ )
$ (Hit Control-a + c)
$ program1 args0 args1 #running first program again
$ (Hit Control-a + c)
$ program2 args0 args1 #running second program
从技术上讲,我什至不需要杀死现有的窗口,只需停止交互式窗口的运行。通常我在窗口中执行此操作时,我只需按 CTRL-D 并且程序停止运行。然后我再次运行程序。
我知道有命令可以按名称附加到现有的屏幕会话,我只是不知道如何使用它来发送相当于 CTRL+D 的命令,然后向它发送另一个命令。
试试这个来退出你的屏幕会话。
screen -dr your_session_name -X quit
笔记:
不同的 Linux/Unix 系统有不同的方法来处理长时间运行的进程。如果您的系统使用 控制进程
systemd
,并且其版本高于230
,请尝试阅读 systemd 的最新手册。