我最近遇到了这个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/