在PHP-CLI中通过Ctrl + C退出时的析构函数和关闭函数

Nie*_*sol 17 php

如果我使用Ctrl+ C退出在CLI中运行的PHP脚本,则不会处理关闭函数,实例化对象的析构函数或任何输出缓冲区.相反,该计划就此消亡.现在,这可能是一件好事,因为这就是Ctrl+ C应该做的事情.但有什么方法可以改变它吗?是否可以强制Ctrl+ C通过关机功能?

更具体地说,这是关于在退出脚本时序列化和保存数据,因此可以在下次脚本运行时重新加载和恢复.定期保存数据可能会起作用,但仍会丢失从上次保存开始的所有内容.还有哪些其他选择?

rdl*_*rey 11

显然PCNTL只是*nix,但是......你可以为所有单个信号注册处理程序,以获得更强大的解决方案,但特别是在遇到CTL + C中断时做一些事情:

<?php
declare(ticks = 1);

pcntl_signal(SIGINT, function() {
    echo "Caught SIGINT\n";
    die;
});

while (true) {
    // waiting for your CTRL+C
}
Run Code Online (Sandbox Code Playgroud)

  • 卫生署!比尔盖茨讨厌你!我不知道在Windows中有什么方法可以实现这一点...... (2认同)