需要从一个进程 Ping 到另一进程

发布于 2025-01-07 21:26:58 字数 1432 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

西瓜 2025-01-14 21:26:58

在同一台机器上(假设有文件系统),您可以使用“心跳文件”。让 P1 定期使用当前时间戳更新文件,P2 可以检查该文件是否太旧。您还可以在其中写入 P1 进程 id,P2 可以检查该 pid 是否仍然存在。

On the same machine (assuming there is a file system), you could use a "heart beat file". Have P1 update the file with the current time-stamp periodically, and P2 can check if that gets too old. You can also write the P1 process id in there, and P2 can check if that pid is still alive.

深者入戏 2025-01-14 21:26:58

您可以在 P2 上设置 P1 定期连接的网络套接字侦听器。您需要指定更具体的代码示例所使用的语言。

正如 Thilo 下面提到的,由于它们位于同一系统上,因此您可以使用一个简单的文件作为“我还活着”消息。下面是一个示例:

  • 让“P1”每隔几秒更新一次文件的当前时间。这是一个 shell 示例(抱歉,我不太擅长 C++):
     rm /tmp/P1.heartbeat
     date +%s > /tmp/P1.heartbeat
  • P2 然后打开-读取-关闭文件。然后,它将其与当前时间进行比较,如果文件中的时间“太旧”,则采取适当的操作。
    • 只需确保您的 P2 系统在每次读取后关闭文件,以确保它重新读取新文件。
     X=`cat /tmp/P1.heartbeat`
     NOW=`date +%s`
     DIFF=$(( $NOW - $X))
     if [ $DIFF -gt 60 ] ; then
       echo P1 died $DIFF seconds ago.
     fi

You could setup a network socket listener on P2 that P1 connects to periodically. You'll need to specify the language you're using for a more specific code example.

As Thilo mentioned below, since they are on the same system you could use a simple file as the "I'm alive" message. Here's an example:

  • Have "P1" update the file with the current time every few seconds. Here is a shell example (sorry, I don't do C++ well):
     rm /tmp/P1.heartbeat
     date +%s > /tmp/P1.heartbeat
  • P2 then opens-reads-closes the file. It then compares it to the current time and takes the appropriate action if the time in the file is "too old".
    • Just make sure your P2 system closes the file after each read to make sure it re-reads the new file.
     X=`cat /tmp/P1.heartbeat`
     NOW=`date +%s`
     DIFF=$(( $NOW - $X))
     if [ $DIFF -gt 60 ] ; then
       echo P1 died $DIFF seconds ago.
     fi
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文