我有一个非常间歇性的问题(现在不断失败)从Hudson在OSX上启动gnu-screen。我有一个shell脚本可以做到这一点:
#!/bin/bash
screen -dm -S foobar
从命令行作为hudson用户,这工作正常,此屏幕会话显示屏幕-ls。从哈德森任务来看,这不起作用。它曾经工作了几个小时,我不知道为什么它不再起作用了。
到目前为止我尝试过:
有什么方法可以调试正在发生的事情吗?我想不出如何弄清楚为什么事情不起作用而且我完全没有想法。而且我没有看到任何可能有帮助的日志。
我的系统是:OSX 10.6.5;屏幕版本4.00.03
更新的 我只想查看/var/log/system.log,我看到了:
Feb 24 23:19:00 macmini2 com.apple.launchd[1] (0x1037c0.anonymous.screen[57291]): Switching sessions is not allowed in the system Mach bootstrap.
Feb 24 23:19:00 macmini2 com.apple.launchd[1] (0x1037c0.anonymous.screen[57291]): _vprocmgr_switch_to_session(): kr = 0x44c
我将不得不进一步研究这个问题,但是我不想在我的第一次搜索中建议这个错误,即安装fink版本的屏幕,或者构建屏幕来源。如果可能的话,我宁愿保持机器的原样(虽然我不反对从源代码编译屏幕,如果这是唯一的解决方案)。
答案 0 :(得分:1)
我已经找到了解决问题的方法,我怀疑回答我自己的问题是不好的协议,但是为了可能有这个问题的其他人,这就是我如何解决这个问题。
最简单/唯一的解决方案似乎是从源代码构建屏幕。步骤非常简单直接:
git clone git://git.savannah.gnu.org/screen.git
cd screen/ && ./mktar.pl && tar xfz screen-4.1.0.tar.gz
cd screen-4.1.0
./autogen.sh && ./configure && make
sudo cp screen /usr/local/bin/
/usr/local/bin/screen --version
对所有守护进程或后台进程使用这个新屏幕(例如,Hudson的shell启动程序,尝试使用屏幕的cron'ed任务等)非常顺利。这也使系统屏幕(/ usr / bin / screen)保持不变。
参考文献: