代码之家  ›  专栏  ›  技术社区  ›  TomaszSobczak

获取PHP中信号处理程序中调用方的tty

  •  0
  • TomaszSobczak  · 技术社区  · 16 年前

    我刚刚为我的应用程序编写了PHP守护进程,并希望实现在指定信号(sigusr1)上生成的一些输出信息。我有代码中的信号处理程序

        pcntl_signal(SIGUSR1, array($this, 'signal_status'));
    

    准备好函数处理程序

      protected function signal_status($signal_number)
      { printf("blah\n"); }
    

    除了一件事,一切都能正常工作。当我向我的守护进程发送信号时( posix_kill($pid, SIGUSR1) 甚至简单 kill -10 pid 在bash)中,我在启动守护进程的控制台中得到了输出。

    是否可以获取调用方的文件描述符而不是守护进程的文件描述符?我不想将这些数据发送到指定的输出(例如kill-10 pid之后),而不发送到守护进程的fd中。

    希望我写得清楚。)

    1 回复  |  直到 16 年前
        1
  •  0
  •   amo-ej1    16 年前

    好吧,你不能,发送信号只是设置一些操作系统原语,一方面与在守护进程和用于生成信号的工具之间设置通信路径无关。您可以选择观察守护进程的控制台输出,或者将守护进程转储状态设置为日志文件,并创建某种实用程序来发送信号并打印日志文件(如果您要这样做,那么为什么不完全丢弃日志文件并设置日志的定期转储,因为信号不是一个po做进程间通信的简单方法。