【问题标题】:How a process running on one machine can know whether another process is running on different machine in linux using c/c++? [closed]在一台机器上运行的进程如何使用 c/c++ 知道另一个进程是否在 linux 中的不同机器上运行? [关闭]
【发布时间】:2012-06-02 04:47:23
【问题描述】:

我在一台机器上运行 process1 并生成一些日志文件。 现在我想启动另一个进程,它可以在任何机器上想知道 process1 是否正在运行,并且如果它正在运行,它想在启动 process2 的终端上流式传输进程一生成的日志文件。

Process2 将按如下方式调用:process2 -dir "DirPath"。在这个 DirPath 中,进程 1 编写了一个文件,其中包含“进程 1 的 pid”、“进程 1 的主机名”和“进程 1 的日志文件”等信息。所以 process2 可以访问这个文件并拥有有关 process1 的所有信息。现在 process2 想知道 process1 当前是否正在运行,如果它正在运行,则需要将 process1 在 logfile 中写入的数据流式传输到启动 process2 的终端。

【问题讨论】:

  • 您需要在第一台机器上安装某种代理,通过网络报告 process1 的状态。相对于您可能拥有的特定约束,有许多选择可供选择。更具体。
  • 进程1可以在进程2可以访问的目录中写入一些文件,并且可以知道进程ID和进程1正在运行的主机。使用 process1 的进程 ID 和 hostmachine,process2 如何知道 process1 是否正在运行。但我需要处理 process1 的各种退出,包括 kill -9。
  • “目录中的某个文件”对您没有帮助,因为它在另一台机器上。
  • 喜欢ssh remote fuser /path/to/log 你的意思是?
  • Process2 将被调用如下:

标签: c++ linux process tail


【解决方案1】:

使用 ssh 登录到远程计算机并运行脚本以使用 ps 和 grep 命令检测进程是否正在运行,然后在知道路径时读取日志文件。如果您不想手动输入密码,可以使用here 中提到的 ssh 密钥

【讨论】:

    猜你喜欢
    • 2012-01-12
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    相关资源
    最近更新 更多