gpt4 book ai didi

php - 当您从 CLI 中按 ctrl + c 时,PHP 进程会退出吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:44:54 24 4
gpt4 key购买 nike

我在我们的一台服务器上目睹了奇怪的磁盘事件。我唯一能想到的是,白天很多 PHP 进程都是从屏幕模式下的 CLI 启动的,如下所示:

php -f myprocess.php

我一注意到磁盘问题,就通过附加屏幕终止了这些进程,ctrl + c 进程,然后退出正在屏幕上。我假设这会退出 PHP 进程。然而,一个小时后,磁盘事件仍然非常高且具有阻碍性。 (我不是系统管理员,所以我无法回溯事件。)我知道当您向服务器发送 ajax 请求然后中止该请求时 (jqxhr.abort()),服务器将仍然执行请求。我认为从 CLI 发出“请求”时可能会发生类似的事情。这些请求是在家中通过 SSH 完成的。

那么,我的行为是否正确,进程是否应该停止,或者它们是否有可能一直运行到完成?

最佳答案

让我们构建一个小测试:

# File: infinite.php
<?php
while (true) { sleep(1); }

运行它,然后监控进程:

$ php infinite.php                        # screen one
$ watch -n 1 "ps aux | grep infinite.php" # watch the process (screen two)

Ctrl + C 在屏幕一中的过程,而您在屏幕二中观看它。

结果:

进程结束。 Ctrl + C 终止事件屏幕的 PHP 进程。


如果您的客户端由于 session 超时而简单地关闭,您可能会发现该过程继续运行。

关于php - 当您从 CLI 中按 ctrl + c 时,PHP 进程会退出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38295815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com