linux - 尝试从 ansible 中通过 screen 启动进程

标签 linux bash vagrant gnu-screen ansible

我在使用 screen 时遇到了一个有点奇怪、可重复但无法解释的问题。

我正在使用 ansible/vagrant 为我的公司构建一个一致的开发环境,作为一个稍微华丽的画龙点睛之笔,它启动了运行在 vagrant 中的开发服务器code>screen session ,因此前端开发人员无需费心登录并手动启动流程,但后端开发人员可以登录并进行控制。

然而,其中一个系统——尽管是从头开始构建的——最终会立即死机(它不会在 screen 日志中记录任何内容)。手动运行命令可以正常工作。

(命令是)

screen -L -d -m bash -c /home/vagrant/run_screen_server.sh

我什至对系统上所有与 vagrant/virtualbox 相关的东西都进行了核对,确保它安装了一个干净的 nightly box。完全相同的源盒适用于所有其他机器。

我是否可以采取任何其他调试步骤,或者我是否遗漏了什么?

最佳答案

我现在正尝试对我的设置做同样的事情并遇到同样的问题。

进一步的测试表明,在调用 screen 后立即 sleep 1 有帮助。似乎在 screen 调用完全分离之前 ansible 调用退出的 ssh 脚本(或其他东西,这可以解释 sleep 1 有帮助)

我还找到了 Can't get Fabric's detached screen session example to work同样的建议。

关于linux - 尝试从 ansible 中通过 screen 启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22225095/

相关文章:

c - 是否总是需要绑定(bind)套接字?

linux - AWS EC2 错误 : -bash: cannot create temp file for here-document: No space left on device

linux - 更好的 Linux shell?

Laravel Homestead/Vagrant 框错误 : The specified checksum type is not supported by Vagrant: sha512

php - Laravel 家园

Linux 内核 : Kernel version string appended with either '' +"or "-dirty"

php - 通过 shell_exec() 创建的视频无法播放,但通过终端创建的视频可以

git - 为什么 .gitignore 不忽略 .DS_Store?

windows - Windows : ssh_exchange_identification 中的 Vagrant ssh

Linux cron 作业无法执行在 shell 中运行的部分脚本