服务器随机接收 ctrl-c

服务器随机接收 ctrl-c

我在 VirtualBox 上有一个 CentOS 服务器(使用 Vagrant),它正在运行一个非常长的 php 脚本(最多可能需要 5 周才能完全完成)该脚本使用 cygwin 通过 ssh 运行。

脚本运行良好,但是在某些随机点,服务器会收到 ctrl-C,但我不知道它来自哪里?

该脚本还可以使用多个进程运行popen()

该脚本通过 cygwin 上的 cli 运行,可以使用 PHPstorm 8 EAP 进行调试。

以下是有关该设置的一些技术细节。

注意:所有软件包都通过 cronjob 自动更新。

OS:          CentOS 6.5
PHP:         5.4.32 (remi repo)
Apache:      2.2.15 (CentOS repo)
MariaDB:     5.5.39 (MariaDB repo)

Other packages:
PhpMyAdmin    (remi)
Webmin        (Webmin)
OpenSSL       (CentOS)
Bind          (CentOS)
screen        (CentOS)
man           (CentOS)
vim           (CentOS)
git           (CentOS)
zlib-devel    (CentOS)

Other installed RPMs:
libarchive2-2.8.4 (Martin-Juhl)
bsdtar-2.8.4      (Martin-Juhl)

php-plugins (yum installed):
php-common
php-tidy
php-pecl-xdebug
php-mbstring
php-mysqlnd
php-gd
php-mcrypt


Installed group-installs:
Development tools

Host-details:
Windows-8.1
VirtualBox-4.3.12
Vagrant-1.6.5

答案1

通过远程运行脚本,您可以添加多层复杂性,每层都有自己的超时。

  • Shell 空闲超时 (TMOUT)
  • SSH 活跃阈值 (ClientAliveCountMax)
  • TCP 保持活动限制
  • PHP运行时间限制(最大执行时间)
  • 您的客户端机器可能崩溃,您意外关闭窗口等等......

您的工作负载似乎主要是基于批处理的。请研究从服务器内部运行此脚本以避免外部依赖。如果您依赖于已安装的文件夹,请按照 Dennis 的建议进行操作,并配置 initscript 顺序/依赖项和/或研究一段时间,让您的脚本继续检查文件夹可用性一段时间(指定重试限制,以便它不会在启动时卡住)。

相关内容