【问题标题】:How to find out how long a screen command has been running on Linux?如何找出一个屏幕命令在 Linux 上运行了多长时间?
【发布时间】:2021-08-28 15:06:01
【问题描述】:

我正在 Linux 服务器上运行一个长脚本。为了避免因不活动而被踢,我使用screen 来确保脚本运行到终止。现在已经有几个小时了,我想知道屏幕已经激活了多长时间。我启动屏幕的命令是screen -S fragmentation ./fragment-all.sh。我没有root权限。

yangsong@lanikai ~ $ screen -ls
There is a screen on:
        852342.fragmentation    (Detached)
1 Socket in /tmp/screen/S-yangsong.

【问题讨论】:

标签: linux bash time server


【解决方案1】:
  1. 您好(还)不能发表评论,所以我试着在这里回答。
  2. 使用pgrep screen可以找到正在运行的screen命令的进程id。 (处理 grep 屏幕)。
    • 如果你通过这个命令找不到screen进程,那么你可以使用top命令查看所有正在运行的进程,并用自己的PID(进程id)寻找screen进程。
  3. 输出应该是几位数以内的数字。
  4. 然后可以运行命令ps -o etime= -p "PID"查看进程运行了多少时间。
    • 用您从pgrep screen 命令获得的进程ID 更改PID。
    • 输出应该是经过的时间,格式为[[dd-]hh:]mm:ss
  5. 如果要终止进程,可以执行命令kill PID
    • 将 PID 更改为您要终止的进程 ID。
  6. 我更喜欢的另一种方法是:
    • ps -o stime,time PID
    • 输出应该是这样的:
    • STIME 时间
    • 15:52 00:21:45

【讨论】:

  • ps -o etime= -p "PID" 为我工作! :)
猜你喜欢
  • 2011-06-25
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
  • 2017-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多