标签: ps

关注机器间的pids(ssh)

我基本上尝试编写一个类似pstree的命令,除了它应该遵循跨机器的进程.

我的意思是如果我运行这个:

$ ssh $node sleep 1000
Run Code Online (Sandbox Code Playgroud)

那么命令应该显示如下:

ssh $node -- ($node) sleep 1000
Run Code Online (Sandbox Code Playgroud)

如果我跑步:

$ ssh $node ssh $node sleep 1000

ssh $node---($node) ssh $node---($node) sleep 1000
Run Code Online (Sandbox Code Playgroud)

等等 ...

我的问题是:如何将一台机器上的一个ssh会话映射到另一台机器上的生成进程?

本地父子进程不是问题,但是如何确定在另一个节点上触发另一个进程的一个节点上的哪个ssh命令.

  1. linux 2.6.18

  2. 只有openSSH的"远程"东西.目前正在运行OpenSSH_4.3p2.

  3. 当然,SSH访问所有节点(基于密钥的身份验证),因此可以从所有节点获得ps和netstat.

  4. 仅Linux的"黑客"很好,不需要便携,但当然这将是一个额外的好处.

  5. 用户将始终保持不变,并且我的命令/脚本正在以该用户身份运行.该用户不是root用户.

  6. 不必快,只准确.

自发的解决方案是编写一个pstree克隆,在命令字符串" ssh" 上触发,找出源端口然后转到相关的远程机器并找出sshd由这个特定命令生成的孩子中的哪一个.

但也许有一种更聪明的方式呢?:P

linux ssh netstat ps

5
推荐指数
1
解决办法
296
查看次数

ps如何在Mac OS X上显示所有进程的argv?

我试图在Mac OS X上根据其参数确定特定进程的运行时间.可能有几个进程使用相同的名称运行,但只有一个进程具有我正在寻找的参数.这些进程不归将运行我的代码的同一用户所有.他们不会以任何方式修改他们的argv.

'ps'命令准确显示了我需要的信息.但我非常希望不必生成'ps'并解析其输出.

我最初使用sysctl 尝试了这个问题的解决方案,但事实证明只适用于您拥有的进程; 请参阅我的其他问题了解更多信息.

那么ps如何获取其他用户拥有的进程的argv信息呢?

c macos ps argv

5
推荐指数
2
解决办法
3032
查看次数

如何在C程序中设置命令行参数,以便在用户键入"ps aux"时可见?

键入"ps aux"时,ps命令显示运行程序的命令参数.有些程序会将此更改为指示状态的方式.我已经尝试过更改argv []字段,但它似乎不起作用.是否有一种标准方法来设置命令行参数,以便在用户键入ps时显示它们?

也就是说,这不起作用:

int main(int argc,char **argv)
{
    argv[0] = "Hi Mom!";
    sleep(100);
}

09:40 imac3:~$ ./x &
[2] 96087
09:40 imac3:~$ ps uxp 96087 
USER      PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
yv32      96087   0.0  0.0  2426560    324 s001  S     9:40AM   0:00.00 ./x
09:40 imac3:~$ cat x.c
Run Code Online (Sandbox Code Playgroud)

c posix ps argv

5
推荐指数
1
解决办法
574
查看次数

ps按开始时间排序结果

我正在使用各种ps命令显示有关当前进程的信息:

ps -eo pid,start,stime,command
Run Code Online (Sandbox Code Playgroud)

如何按开始对这些结果进行排序?

我已经阅读man ps并尝试过-m-r以及-v排序选项。不幸的是,我无法使用这些选项按开始排序。

unix sorting ps

5
推荐指数
1
解决办法
1万
查看次数

ps aux不包裹线

当我做'ps aux'时,很多线都比我的终端宽度长,而不是换行到下一行.起初我以为这是我的stty设置,但是我注意到像netstat这样的其他命令会在我的终端中换行.我宁愿不被迫使用更少或一些其他寻呼机.

有人知道线条没有包裹的原因吗?以及如何解决?

linux ps

5
推荐指数
3
解决办法
6822
查看次数

OpenBSD 中的进程信息

我是 OpenBSD 的新手。我以前在 Linux 上工作过。我正在寻找可以找到有关当前正在运行的进程的信息的目录。在 Linux 中,我们有 /proc 目录,其中包含整个列表。但是我在 OpenBSD 4.6 中找不到类似的设置。我知道有像 ps、top 和 sysctl 这样的命令,但我想通过 C 代码获取这些信息。

unix openbsd process ps

5
推荐指数
1
解决办法
2088
查看次数

使用PHP列出服务器上所有正在运行的进程

我正在尝试使用来获取当前在我的Ubuntu服务器上运行的所有进程的列表PHP。理想情况下,我想获得以下信息:

  • 进程ID
  • 用于执行过程的命令
  • 对过程的争论

我知道,我可以使用exec调用ps列出当前正在运行的进程。

exec('ps aux', $output);
Run Code Online (Sandbox Code Playgroud)

但是,输出使用任意数量的空格格式化,因此解析它并不是世界上最简单的事情。

我可能会使用explodepreg_split解析,但是有没有更简单的方法使用来获取所有正在运行的进程的列表php以及进程ID,命令和参数?

php linux ubuntu process ps

5
推荐指数
1
解决办法
9958
查看次数

你如何自动获取 xdotool 的窗口 ID

我正在尝试自动化 selenium 需要太长时间的测试表单(javascript 重型现代表单),我想使用 xdotool 并获取窗口 ID。我看到您可以调用xdotool selectwindow并单击它,但是您每次都必须单击它。我想告诉它“对于标签标题为 x 的 google chrome 窗口,请执行 y”

我在这里得到了窗口 ID:

cchilders@cchilders-Dell-Precision-M3800:~$ xdotool selectwindow
65011713
Run Code Online (Sandbox Code Playgroud)

这是针对 chrome 本身的,每个选项卡在单击时都会获得相同的值。所以我希望在 ps 或窗口管理器中找到它,但没有:

cchilders@cchilders-Dell-Precision-M3800:~$ wmctrl -l
0x03a00001  0 cchilders-Dell-Precision-M3800 views.py - /home/cchilders/work_projects - Atom
0x03a00048  0 cchilders-Dell-Precision-M3800 pip_freeze_update.py - /home/cchilders/scripts - Atom
0x03a000bc  0 cchilders-Dell-Precision-M3800 urls.py - /home/cchilders/work_projects - Atom
Run Code Online (Sandbox Code Playgroud)

ps 也不起作用:

(clientsite)cchilders@cchilders-Dell-Precision-M3800:~$ ps -alx
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0 185188  5752 …
Run Code Online (Sandbox Code Playgroud)

linux bash scripting ps xdotool

5
推荐指数
2
解决办法
1万
查看次数

如何在高山中使用ps命令获取特定PID的进程名称

在基于ubuntu的docker/os中

$ ps 
PID   USER     TIME   COMMAND
    1 postgres   0:00 postgres
   47 postgres   0:00 postgres: checkpointer process   
   48 postgres   0:00 postgres: writer process   
   49 postgres   0:00 postgres: wal writer process   
   50 postgres   0:00 postgres: autovacuum launcher process   
   51 postgres   0:00 postgres: stats collector process   
   52 postgres   0:00 postgres: bgworker: logical replication launcher
Run Code Online (Sandbox Code Playgroud)

现在如果运行ps -p 1 -o user=,它将获得PID 1进程USERpostgres

$ ps -p 1 -o user=
postgres
Run Code Online (Sandbox Code Playgroud)

这是我在ubuntu基于image/os的方面所能做的

现在

我真的在寻找一种方法来为alpine基础图像做同样的事情.我可以在哪里运行ps命令来获取PID …

pid process ps alpine-linux

5
推荐指数
1
解决办法
3521
查看次数

Bash脚本错误地计数了自己的实例

我创建了一个bash脚本,该脚本计算了自身启动的实例。

在这里(在此示例中,我显示的是实例,而不是用进行计数wc -l):

#!/bin/bash
nb=`ps -aux | grep count_itself.sh`
echo "$nb"
sleep 20
Run Code Online (Sandbox Code Playgroud)

(当然,我的脚本名为count_itself.sh

执行它后,我希望它返回两行,但返回三行:

root@myserver:/# ./count_itself.sh
root    16225   0.0 0.0 12400   1176 pts/0  S+  11:46   0:00    /bin/bash ./count_itself.sh
root    16226   0.0 0.0 12408   564 pts/0   S+  11:46   0:00    /bin/bash ./count_itself.sh
root    16228   0.0 0.0 11740   932 pts/0   S+  11:46   0:00    grep count_itself.sh
Run Code Online (Sandbox Code Playgroud)

&标志(即在后台执行)并手动执行该ps -aux位时,它返回两个,这是我想要的:

root@myserver:/# ./count_itself.sh &
[1] 16233
root@myserver:/# ps -aux | grep count_itself.sh
root     16233  0.0  0.0 …
Run Code Online (Sandbox Code Playgroud)

linux bash grep ps

4
推荐指数
1
解决办法
148
查看次数

标签 统计

ps ×10

linux ×5

process ×3

argv ×2

bash ×2

c ×2

unix ×2

alpine-linux ×1

grep ×1

macos ×1

netstat ×1

openbsd ×1

php ×1

pid ×1

posix ×1

scripting ×1

sorting ×1

ssh ×1

ubuntu ×1

xdotool ×1