标签: process

哪个进程的PID为0?

我正在寻找在 Linux 中启动的进程 ID 为 0 的进程。我知道init有 PID 1 ,它是 Linux 中的第一个进程,是否有任何进程的 PID 为 0?

process

72
推荐指数
3
解决办法
14万
查看次数

如何列出进程锁定文件?

使用flock,多个进程可以同时拥有一个共享锁,或者等待获取一个写锁。我如何获得这些进程的列表?

也就是说,对于给定的文件 X,理想情况下找到每个进程的进程 ID,该进程持有或正在等待文件锁定。尽管只是计算等待锁定的进程数,但这将是一个非常好的开始。

process lock files

72
推荐指数
3
解决办法
21万
查看次数

需要对常驻集大小/虚拟大小进行说明

我发现这pidstat将是监控流程的好工具。我想计算特定进程的平均内存使用量。这是一些示例输出:

02:34:36 PM       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
02:34:37 PM      7276      2.00      0.00  349212 210176   7.14  scalpel
Run Code Online (Sandbox Code Playgroud)

(这是输出的一部分pidstat -r -p 7276。)

我应该使用常驻集大小 (RSS) 或虚拟大小 (VSZ) 信息来计算平均内存消耗吗?我在维基百科和论坛上阅读了一些内容,但我不确定是否完全理解这些差异。另外,似乎它们都不可靠。那么,如何监视进程以获取其内存使用情况?

对此事的任何帮助都会有所帮助。

linux process memory

71
推荐指数
2
解决办法
9万
查看次数

运行多个命令并将它们作为一个在 bash 中杀死

我想在单个 shell 上运行多个命令(进程)。都有自己的连续输出,不停歇。在后台运行它们Ctrl- C。我想将它们作为单个进程(子shell,也许?)运行,以便能够用Ctrl-停止所有这些进程C

具体来说,我想使用mocha(监视模式)运行单元测试,运行服务器并运行一些文件预处理(监视模式),并在一个终端窗口中查看每个测试的输出。基本上我想避免使用一些任务运行器。

我可以通过在后台运行进程 ( &)来实现它,但是我必须将它们放到前台来阻止它们。我想要一个包装它们的过程,当我停止这个过程时,它会停止它的“孩子”。

command-line bash process background-process process-groups

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

谁有这个unix socketpair的另一端?

我想确定哪个进程具有 UNIX 套接字的另一端。

具体来说,我问的是用 来创建的socketpair(),尽管任何 UNIX 套接字的问题都是一样的。

我有一个程序parent可以创建一个socketpair(AF_UNIX, SOCK_STREAM, 0, fds), 和fork()s。父进程关闭fds[1]并保持fds[0]通信。孩子反其道而行之,close(fds[0]); s=fds[1]。然后孩子exec()的另一个程序,child1。两者可以通过这个 socketpair 来回通信。

现在,假设我知道parent是谁,但我想弄清楚是谁child1。我该怎么做呢?

有几种工具可供我使用,但没有一个可以告诉我套接字的另一端是哪个进程。我试过了:

  • lsof -c progname
  • lsof -c parent -c child1
  • ls -l /proc/$(pidof server)/fd
  • cat /proc/net/unix

基本上,我可以看到两个套接字以及关于它们的所有内容,但无法判断它们是否已连接。我试图确定父进程中的哪个 FD 正在与哪个子进程通信。

process lsof open-files socket

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

进程周围的括号是什么意思?

$ ps -Awwo pid,comm,args
  PID COMMAND         COMMAND
    1 init            /sbin/init
    2 kthreadd        [kthreadd]
    3 ksoftirqd/0     [ksoftirqd/0]
    5 kworker/u:0     [kworker/u:0]
    6 migration/0     [migration/0]
    7 cpuset          [cpuset]
    8 khelper         [khelper]
    9 netns           [netns]
   10 sync_supers     [sync_supers]
   11 bdi-default     [bdi-default]
   12 kintegrityd     [kintegrityd]
   13 kblockd         [kblockd]
   14 kacpid          [kacpid]
   15 kacpi_notify    [kacpi_notify]
   16 kacpi_hotplug   [kacpi_hotplug]
   17 ata_sff         [ata_sff]
   18 khubd           [khubd]
Run Code Online (Sandbox Code Playgroud)

括号是什么意思?args 是否总是返回进程命令的完整路径(例如/bin/cat)?

process ps

68
推荐指数
2
解决办法
4万
查看次数

如何在没有截断行的情况下在solaris中获得完整的进程列表?

有没有办法在solaris中生成完整的进程列表,而不会被截断?我试过ps命令,有以下参数:

  -f 生成完整列表。(见下文
                      完整列表中列的重要性-
                      ing。)
  -l 生成一个长列表。(见下文。)

所以,那些似乎都在做我想做的事,但是,在 ps 手册页的更深处,我发现:

 
 args 命令及其所有参数作为
                         细绳。实现可能会截断
                         这个值到字段宽度;这是
                         依赖于实现的是否有
                         发生进一步截断。这是
                         未指定是否为字符串
                         表示的是参数的一个版本
                         列表,因为它被传递给命令
                         当它开始时,或者是
                         参数,因为它们可能已被修改
                         通过应用程序。应用程序不能
                         取决于能够修改他们的
                         参数列表并进行修改
                         将反映在 ps 的输出中。
                         Solaris 实现限制了
                         字符串到 80 个字节;字符串是
                         参数列表的版本
                         开始时传递给命令。

这基本上是说输出将被截断,我对此无能为力。所以,我来了。当然,其他人也遇到过这个问题,甚至可能有办法解决它。我猜 ps 做不到,所以我需要使用其他工具来做到这一点。那是准确的吗?

process solaris ps

60
推荐指数
2
解决办法
18万
查看次数

进程 ID 的最大值是多少?

进程 ID 的最大值是多少?

另外,是否可以更改进程 ID?

process

60
推荐指数
3
解决办法
6万
查看次数

保存整个过程以在重启后继续

我为一个相当难的数学问题开发了一个算法,这个问题可能需要几个月才能完成。由于我的资源有限,我在我的 Ubuntu 12.04 (x86) 笔记本电脑上开始了这个。现在我想安装一些更新并实际重新启动笔记本电脑(“请重新启动”消息很烦人)。

有没有办法保存整个进程,包括其分配的内存,以便在重启后继续?

以下是有关您可能需要的流程的一些信息。如果需要,请随时询问更多信息。

  • 我在终端中使用命令“ ./binary > ./somefile &”或“time ./binary > ./somefile &”调用了该进程,我真的记不清了。
  • 它正在向 std::cerr 打印一些调试信息(不经常)。
  • 它目前使用大约 600.0 kiB,即使这会增加,也不太可能迅速增加。
  • 进程以正常优先级运行
  • 内核是3.2.0-26-generic-pae,CPU是AMD,操作系统是Ubuntu 12.04 x86。
  • 它从 9 天 14 小时开始运行(太长了无法取消它;-))

process reboot

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

如何检查哪个进程使用的内存最多

当我签free入其中一台 Prod 服务器时,它显示正在使用 70% 的内存:

             total       used       free     shared    buffers     cached
Mem:     164923172  141171860   23751312          0    4555616   20648048
-/+ buffers/cache:  115968196   48954976
Swap:      8388600          0    8388600
Run Code Online (Sandbox Code Playgroud)

但是我没有找到正在使用内存的进程,我尝试了该top命令,它显示进程只使用内存 1.1 和 5.4 %

如何找到哪个进程正在使用内存?

以下是顶级命令结果:

15085 couchbas  25   0 2784m 2.4g  40m S 183.7  1.5 299597:00 beam.smp
28248 tibco     18   0  124m 100m 3440 S 20.9  0.1   2721:45 tibemsd
15334 couchbas  15   0 9114m 8.6g 3288 S  9.0  5.4  12996:28 memcached
15335 couchbas  18   0  6024  600  468 …
Run Code Online (Sandbox Code Playgroud)

process memory top

60
推荐指数
4
解决办法
30万
查看次数