标签: process

什么会导致 ps 报告 uid 而不是 username?

我在 Linux 机器上安装了Eucalyptus,我注意到对于 eucalyptus 用户拥有的进程,ps报告的是 userid 而不是用户名。例如:

$ sudo -i -u eucalyptus
$ ps u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
107      29764  0.0  0.0  19376  2104 pts/2    S    11:43   0:00 -bash
107      30198  0.0  0.0  15256  1180 pts/2    R+   11:44   0:00 ps u
Run Code Online (Sandbox Code Playgroud)

什么会导致这种情况发生?

请注意,/etc/passwd 中有一个正确的条目:

$ grep eucalyptus /etc/passwd
eucalyptus:x:107:115::/var/lib/eucalyptus:/bin/bash
Run Code Online (Sandbox Code Playgroud)

另请注意ls属性报告桉树帐户的文件所有权:

$ touch foo
$ ls -l foo
-rw-r--r-- 1 eucalyptus eucalyptus 0 2010-09-23 11:47 foo
Run Code Online (Sandbox Code Playgroud)

process ps

30
推荐指数
2
解决办法
3万
查看次数

在 ps 输出中禁用列名

如何格式化ps -p命令的输出?

为了不给我看这样的东西:

PID TTY                TIME CMD
Run Code Online (Sandbox Code Playgroud)

但只是PID。

我正在使用 Linux。

process ps

30
推荐指数
2
解决办法
3万
查看次数

init 进程:所有进程的祖先?

我一直都知道 init 进程是所有进程的祖先。为什么进程 2 的 PPID 为 0?

$ ps -ef | head -n 3
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 May14 ?        00:00:01 /sbin/init
root         2     0  0 May14 ?        00:00:00 [kthreadd]
Run Code Online (Sandbox Code Playgroud)

linux process init

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

如何找到哪个进程向特定端口发送数据?

我有一个服务,保持某个端口打开。

我正在获取数据,我既不希望也不想得到,我正试图确定这些数据的来源。那么如何找到哪个进程数据发送到特定端口,而不是哪个进程正在侦听。

networking process

29
推荐指数
3
解决办法
4万
查看次数

所有者/root 和 RUID/EUID 之间的区别

我对问题中提到的概念比较陌生,从不同来源阅读它们只会使它们更加混乱。所以这是我到目前为止的理解:

当我们获得文件的权限时,它们看起来像这样:

-rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin
Run Code Online (Sandbox Code Playgroud)

我们假设用户user2谁是该组中users试图执行file.bin。如果未设置 setuid 位,则意味着 的 RUID 和 EUIDfile.bin都等于 的 UID user2。但是由于设置了 setuid 位,这意味着 RUID 现在等于 的 UID user2,而 EUID 是文件所有者的 UID,user1

我的问题是:

  1. 文件的所有者和 之间有什么区别root?是否root与所有者具有相同的权限?或者我们是否需要在权限列表中单独的条目root
  2. RUID和EUID的区别?
    • 据我了解,RUID 和 EUID 仅适用于进程。如果是这样,为什么他们有用户 id 的值?
    • 如果 RUID 是创建进程的用户,而 EUID 是当前正在运行该进程的用户,那么这个问题第一个答案的第一句话对我来说没有任何意义。
    • 我是否正确理解 setuid 位的作用?

process root setuid permissions files

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

一个已被否认并丢失其终端的进程的输出会发生什么?

如果我关闭启动某个进程的虚拟终端,输出是直接转到/dev/null,还是会以某种方式污染内存? 无论如何,我可以在此之后的任何时候获取输出以继续阅读吗?

[编辑]:那么,否认一个过程的那一刻是否有效地结束了我控制其输出的权力?

我还注意到,如果我否认一个停止的进程,起初一切似乎都很正常:它既不会终止,也不会显示在作业中。但是,如果我退出(并且我不是说关闭终端,只是从 退出su,例如),该过程将终止。尽管如此,后台运行的被拒绝的进程可以保持运行。

process terminal io-redirection job-control disown

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

优雅地获取后代进程列表

我想获得从$pid. 这是我想出的最简单的方法:

pstree -p $pid | tr "\n" " " |sed "s/[^0-9]/ /g" |sed "s/\s\s*/ /g"
Run Code Online (Sandbox Code Playgroud)

是否有任何命令或任何更简单的方法来获取所有后代进程的完整列表?

process ps

28
推荐指数
3
解决办法
2万
查看次数

Linux 中的实时进程调度

我一直在学习一些调度概念。目前我的理解如下。

  • 有实时进程和非实时进程。
  • 非实时进程nice的优先级值可以在-20+20的范围内。较高的正值表示该进程具有较低的优先级。
  • 实时进程将列出一个 niceness 值,-如本答案here中所述。这主要是因为实时进程比非实时进程具有更高的优先级,并且niceness 值不适用于它们。
  • 现在,我可以使用chrt来查看进程的实时属性。

对于实时过程,chrt给出的输出为,

chrt -p 5
pid 5's current scheduling policy: SCHED_FIFO
pid 5's current scheduling priority: 99
Run Code Online (Sandbox Code Playgroud)

正如我们在进程5 中看到的,优先级是 99,这是最高的。此外,调度策略是SCHED_FIFO

现在,对于非实时过程,chrt给出的输出为,

chrt -p 22383
pid 22383's current scheduling policy: SCHED_OTHER
pid 22383's current scheduling priority: 0
Run Code Online (Sandbox Code Playgroud)

正如我们所见,进程22383的优先级为 0,调度策略为SCHED_OTHER

问题

  1. 我可以将任何过程作为实时过程吗?
  2. 除了SCHED_OTHER非实时进程之外,我是否可以设置其他一些调度算法?
  3. 这里,我还看到我可以修改正在运行的进程的属性,

    chrt -p prio pid …
    Run Code Online (Sandbox Code Playgroud)

process scheduling kernel

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

Linux:是否只能看到内核空间线程/进程?

我知道程序有两个“级别”:用户空间和内核空间。

我的问题是:我只想看到内核程序,或者更好:内核空间上的程序。

这种方法是否正确?

ps -ef|grep "\["

root         1     0  0 20:23 ?        00:00:00 init [4]
root         2     0  0 20:23 ?        00:00:00 [kthreadd]
root         3     2  0 20:23 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 20:23 ?        00:00:00 [kworker/0:0H]
root         7     2  0 20:23 ?        00:00:06 [rcu_sched]
root         8     2  0 20:23 ?        00:00:00 [rcu_bh]
root         9     2  0 20:23 ?        00:00:00 [migration/0]
root        10     2  0 20:23 ?        00:00:00 [migration/1]
root        11     2  0 20:23 ?        00:00:00 [ksoftirqd/1]
root …
Run Code Online (Sandbox Code Playgroud)

process linux-kernel

28
推荐指数
1
解决办法
8112
查看次数

监控文件更改 + 进程访问文件

我想看看我的应用程序服务器文件夹中发生了什么,即进程 x 更改了哪些*.war文件,或者在过去 x 分钟内更改了(替换/创建)哪些文件。

Linux 中是否有工具可以帮助解决此问题?

shell process monitoring files

27
推荐指数
4
解决办法
7万
查看次数