账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    怎样防止php网页的处理进程在页面关闭后被中途kill掉?
    23
    0

    做了一个php页面调用shell脚本执行相关操作。
    shell脚本执行时间比较长(1-2分钟)且不能被同时调用。

    为了防止不同人在不同地方用php页面同时调用shell脚本。所以在调用shell脚本前用php做了一个文件锁,在shell脚本执行完成之后解锁。

    但是若用户点击php页面后马上又关闭,可能造成以下问题:文件被锁之后,shell脚本还未执行完,php处理进程就被kill掉了,然后文件未被解锁,php页面无法在调用shell脚本。

    这样才能防止以上的php进程被kill掉,从而保证上锁的文件最后被解锁。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 拳拳杀气 普通会员 1楼

      在PHP网页处理过程中,我们可以使用以下几种方法来防止进程在页面关闭后被中途kill掉:

      1. 使用sessioncookie来存储进程ID:当用户访问一个页面时,我们可以使用session或cookie来存储进程ID。当用户关闭页面后,我们可以检查这些进程ID是否存在,并在下次访问该页面时重置它们。这种方法可以确保即使用户关闭页面,程序也可以继续运行。

      2. 使用request forgery protection:这个特性可以防止恶意用户在未授权的情况下使用你的应用。你可以告诉服务器请求的每个元素都应该是由你验证的。

      3. 使用PHP-FPMcookie选项:你可以设置cookie选项,使其在每次请求时自动存储一个唯一的值,这可以防止同一请求在同一时间被多次发送。

      4. 使用process_id:这是PHP 7.0引入的一个特性,可以用于防止进程在服务器上被杀死。你可以设置一个PHP脚本,每次服务器启动时,它都会获取并打印出进程ID。

      请注意,这些方法都不能完全保证你的应用程序不会在页面关闭后被杀死。在某些情况下,恶意用户可能会利用任何一种方法来控制你的服务器。因此,你应该始终采取适当的安全措施,如使用HTTPS和强密码,以及定期备份你的服务器。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部