linux - 在 bash 脚本的 shebang 中使用 screen session

标签 linux bash gnu-screen

我最近遇到了这个post这表示可以使用 shebang 强制脚本在 screen 上运行。我的问题是,如果我想重新连接到现有的 screen session (从而强制脚本在 screen 下运行),该如何执行此操作。

因此,在我的服务器上,当我执行 screen -list 时,我看到:

There is a screen on:
    22566.myscreen  (10/26/13 23:47:09) (Detached)
1 Socket in /var/run/screen/S-admin.

现在,我有以下 bash 脚本,并且我希望该 bash 脚本与上述 screen session 一起运行。目前,我有这样的事情:

#!/usr/bin/screen -r "myscreen" /bin/bash
# /home/foo/jobscripts/script.sh
#

echo $STY
git status
touch /home/foo/jobscripts/testsuccess.txt
exit 0

...但这显然不起作用并告诉我错误:未知选项r“myscreen”/bin/bash想知道是否有一种方法可以在shebang中指定重新附加到我上面的 screen 。

最佳答案

对于Linux,我认为我们应该使用pid.sessionname之类的东西。

对于其他类 Unix 操作系统,它也可能指示 TTY,如 pid.tty.sessionname

为了确保这一点,请参阅 screen 的联机帮助页:man screen

关于linux - 在 bash 脚本的 shebang 中使用 screen session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19618456/

相关文章:

html - 将单个文件夹中的一组 html 文件的 <title> 标记内的所有文本大写

python - 在大文件中搜索每第 n 个行模式,然后为下一个 x 行范围添加前缀

linux - 写入 TCP 套接字不断返回 EAGAIN

bash - IFS= : leads to different behavior while looping over colon-separated values

bash - 简单的 Linux Bash 脚本

emacs - 如何安装 terminfo 条目(来自 Emacs 的 eterm-color)?

c - 查找可用端口以使用 BSD 打开伪终端

linux - 可以使用最后一个 PID 变量 $!是错的?

python - 如何检查 screen 是否正在运行?

git - 类似 GNU screen 的 Git Bash 多 session 管理器