【问题标题】:Get history command of a process获取进程的历史命令
【发布时间】:2014-06-02 23:43:18
【问题描述】:

几天前,我在远程服务器上运行了一个应用程序 (Matlab) 的多个实例(我不是 root)。每个实例将输出重定向到日志文件。

今天我想终止一个将输出重定向到特定日志文件的进程。我知道该日志文件的名称,以及该应用程序所有正在运行的进程的 PID。但我不知道哪个 PID 对应于该日志文件。

我的问题是如何找到写入该日志文件的 PID?或者至少得到几天前的命令历史;这样我就可以估计我运行该命令的时间,然后将其与当前 PID 的运行时间进行比较,找出最接近的匹配项?

注意:我尝试了命令history,但它只显示我仍然登录的今天的历史记录。我经常做的是登录到服务器,启动一个进程,注销,并在接下来的几天再次登录以查看结果。

【问题讨论】:

  • 命令历史与用户有关,而不是与进程有关,我想。不过,有一种方法可以找到哪个文件由哪个进程打开。试着用谷歌搜索一下。
  • 干杯。除了@skwllsp建议的fuser,我发现命令lsof有类似的功能

标签: linux process command pid


【解决方案1】:

如果你这样启动命令:

command > logfile.1

然后你可以运行ps aux | grep logfile.1来获取进程。

【讨论】:

    【解决方案2】:

    我的问题是如何找到写入该日志文件的 PID

    fuser - identify processes using files or sockets
    

    所以,这样做:

    fuser filename
    

    【讨论】:

    • 太棒了。这就是我要找的。 tnx
    猜你喜欢
    • 2022-01-20
    • 2013-08-21
    • 1970-01-01
    • 2013-05-12
    • 2011-08-09
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多