我基本上尝试编写一个类似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命令.
linux 2.6.18
只有openSSH的"远程"东西.目前正在运行OpenSSH_4.3p2.
当然,SSH访问所有节点(基于密钥的身份验证),因此可以从所有节点获得ps和netstat.
仅Linux的"黑客"很好,不需要便携,但当然这将是一个额外的好处.
用户将始终保持不变,并且我的命令/脚本正在以该用户身份运行.该用户不是root用户.
不必快,只准确.
自发的解决方案是编写一个pstree克隆,在命令字符串" ssh" 上触发,找出源端口然后转到相关的远程机器并找出sshd由这个特定命令生成的孩子中的哪一个.
但也许有一种更聪明的方式呢?:P
键入"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) 我正在使用各种ps命令显示有关当前进程的信息:
ps -eo pid,start,stime,command
Run Code Online (Sandbox Code Playgroud)
如何按开始对这些结果进行排序?
我已经阅读man ps并尝试过-m,-r以及-v排序选项。不幸的是,我无法使用这些选项按开始排序。
当我做'ps aux'时,很多线都比我的终端宽度长,而不是换行到下一行.起初我以为这是我的stty设置,但是我注意到像netstat这样的其他命令会在我的终端中换行.我宁愿不被迫使用更少或一些其他寻呼机.
有人知道线条没有包裹的原因吗?以及如何解决?
我是 OpenBSD 的新手。我以前在 Linux 上工作过。我正在寻找可以找到有关当前正在运行的进程的信息的目录。在 Linux 中,我们有 /proc 目录,其中包含整个列表。但是我在 OpenBSD 4.6 中找不到类似的设置。我知道有像 ps、top 和 sysctl 这样的命令,但我想通过 C 代码获取这些信息。
我正在尝试使用来获取当前在我的Ubuntu服务器上运行的所有进程的列表PHP。理想情况下,我想获得以下信息:
我知道,我可以使用exec调用ps列出当前正在运行的进程。
exec('ps aux', $output);
Run Code Online (Sandbox Code Playgroud)
但是,输出使用任意数量的空格格式化,因此解析它并不是世界上最简单的事情。
我可能会使用explode或preg_split解析,但是有没有更简单的方法使用来获取所有正在运行的进程的列表php以及进程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) 在基于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 …
我创建了一个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)