有没有办法显示进程的连接?类似的东西:
show PID
Run Code Online (Sandbox Code Playgroud)
其中show是执行此操作的命令,并且PID是进程的 ID。我想要的输出由进程的所有连接(实时)组成。例如,如果进程尝试连接到173.194.112.151,则输出为173.194.112.151。
一个更具体的 Firefox 示例:
show `pidof firefox`
Run Code Online (Sandbox Code Playgroud)
使用 Firefox,我首先访问google.com,然后访问unix.stackexchange.com,最后访问192.30.252.129。当我关闭浏览器时,输出必须是:
google.com
stackexchange.com
192.30.252.129
Run Code Online (Sandbox Code Playgroud)
(显然对于浏览器这个输出是不现实的,因为还有很多其他相关的连接,但这只是一个例子。)
我正在尝试在 CentOS 中打开 Firefox,但收到以下消息:
Firefox 已经在运行但没有响应
和 Firefox 打不开。我在命令行中试过这个:
kill Firefox
Run Code Online (Sandbox Code Playgroud)
但它没有用。另外,我不知道必须在哪个目录中执行正确的命令。
我怎样才能解决这个问题?
我有一个关于执行简单命令的简单问题。根据我的理解,当我们ls在交互式 shell 中键入命令时,
如果我的理解是正确的,我们在 shell 提示符下键入的一个简单命令会在子进程上执行,并且该命令的结果不会影响当前 shell 的环境。
如果是这样,那么内置命令cd呢?如果cd在子进程上执行并且不能影响当前shell的环境,那么如何更改当前shell的工作目录?
我有一个二进制文件,我应该破解它的密码(作业)。还有一个给定的函数(一个函数是二进制文件的一部分)。该函数显示输入字符串与正确的密码逐字符进行比较,并在字符错误时立即返回 false(我猜这不是安全的方法,因为它正在泄漏时间,我们知道正确的密码长度为例子)。但是我们的老师添加了一个随机计时器来返回结果(正确/错误),这对我们来说有点困难......
无论如何,我已经通过逆向工程成功完成并获得了正确的密码。现在我在命令行中使用它:
/usr/bin/time -v ./program_name enter_password
Run Code Online (Sandbox Code Playgroud)
使用这个命令,我得到了很多信息,比如系统时间、交换、执行时间……但对我来说最有趣的是“自愿上下文切换”,因为我输入的密码字符越正确,“自愿上下文切换”就越少“我明白了!
我输入的错误字符越多,我得到的“自愿上下文切换”就越多。
仅通过输入该命令,输入字符并观察“自愿上下文切换”,我就花了将近两个小时来破解密码。只要 ONE 字符正确,“自愿上下文切换”就会减少 1。
我的问题,究竟什么是“自愿上下文切换”,为什么他们帮助我破解密码?
我知道通过ps我可以看到系统中运行的当前进程的列表或树。但我想要实现的是“跟随”使用计算机时创建的新进程。
打个比方,当您使用tail -f跟踪附加到文件或任何输入的新内容时,我想保留当前正在创建的进程的跟踪列表。
这甚至可能吗?
有时我在 gnome-terminal 中运行一个应用程序,但后来我突然不得不重新启动 gnome 或其他东西。我想这个问题的答案也很有用,然后我想在发生某些事情的地方与 SSH 断开连接。
Gnome 的终端树如下所示:
gnome-terminal
bash
some-boring-process
Run Code Online (Sandbox Code Playgroud)
我可以bash从gnome-terminal(或some-boring-process从 bash分离并将其输出重定向到某个地方)吗?如果我只是杀死gnome-terminal,bash将被杀死以将其所有子进程
有什么方法可以从终端找出导致 CPU 使用率高的进程吗?
按 cpu Usage 的降序对进程进行排序也很有用
起初,这个问题似乎有点愚蠢/令人困惑,因为操作系统负责管理进程执行。
但是,我想测量一些进程受 CPU/IO 限制的程度,并且我觉得我的操作系统正在干扰我的实验,例如,预定的操作系统进程。
以以下情况为例:我运行了进程 A 两次,并从工具“time”(时间列以秒为单位)得到以下输出:
+---+-------+---------+-----------+---------+
|Run|Process|User Time|System Time|Wall time|
+---+-------+---------+-----------+---------+
|1 |A |196.3 |5.12 |148.86 |
|2 |A |190.79 |4.93 |475.46 |
+---+-------+---------+-----------+---------+
Run Code Online (Sandbox Code Playgroud)
正如我们所看到的,虽然用户时间和系统时间相似,但两者的经过时间发生了巨大变化(相差约 5 分钟)。感觉我的环境中的某些东西引起了某种争用。
我想停止所有可能的后台进程/服务,以避免在我的实验过程中出现任何类型的噪音,但我认为自己是一个新手/中级 unix 用户,我不知道如何保证这一点。
我使用的Linux 4.4.0-45泛型与Ubuntu的LTS 14.04的64位。
我非常感谢您的帮助。如果你们需要任何缺失的信息,我会及时编辑我的帖子。
CPU信息
$ grep proc /proc/cpuinfo | wc -l
8
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor …Run Code Online (Sandbox Code Playgroud) 我试图重新附加到长时间运行的 tmux 会话以检查 python 网络应用程序。然而tmux attach声称没有正在运行的会话,并ps显示一个tmux进程(第一行),但用问号而不是pts数字。
这是什么意思——这个 tmux 会话是否永久丢失了,可能是什么原因造成的?有没有办法查看 python 进程的当前状态,在 tmux 会话中产生并在pts/19(第二行)中运行?
[mhermans@web314 ~]$ ps -ef | grep mhermans
mhermans 16709 1 0 Mar04 ? 00:26:32 tmux
mhermans 8526 16710 0 Mar04 pts/19 00:20:04 python2.7 webapp.py
root 9985 6671 0 10:18 ? 00:00:00 sshd: mhermans [priv]
mhermans 10028 9985 0 10:18 ? 00:00:00 sshd: mhermans@pts/16
mhermans 10030 10028 0 10:18 pts/16 00:00:00 -bash
mhermans 16247 10030 6 10:28 pts/16 …Run Code Online (Sandbox Code Playgroud) process ×10
cpu ×3
linux ×3
kill ×2
terminal ×2
bash ×1
command-line ×1
debian ×1
firefox ×1
job-control ×1
monitoring ×1
networking ×1
performance ×1
session ×1
shell ×1
subshell ×1
tmux ×1