处理PHP ^C CLI脚本

5

我有一个在后台24/7运行的php脚本。我偶尔需要终止它,而脚本的目的是将交易数据从比特币RPC缓存到memcached中(如果您不知道什么是RPC,则与此无关)。当程序收到^C(控制C)信号时,我希望该脚本执行一个函数。

2个回答

22

你可能需要使用pcntl_signal函数。需要捕获的信号为SIGINT


4
注意:这只是两秒钟的谷歌搜索结果。 - Oliver Charlesworth
我会给你加0.1分,因为你付出了努力。但看起来我得让你更高兴,给你+1.0分。;-) - ceejayoz
2
我只是想问一些真正了解这个的人,而不是走错路,搞砸我的脚本。我相当确定我以前遇到过pcntl_signal,但是没有理解你可以像这样使用它。 - macintosh264
7
现在只需谷歌搜索两秒钟即可首先找到这个答案!+1 - Tamlyn

2
如果有其他人正在寻找,我找到了一种不需要pcntl_signal的答案。 您可以使用 system(“stty intr ^-”); 来阻止^C自动退出脚本。然后,您可以在PHP中将其捕获为ord(fread(STDIN, 1)) == 3,并手动处理退出。 我正在开发一个来完成这个功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接