Questions tagged «process»

进程是正在执行的计算机程序的实例。

7
线程是否在Linux上实现为进程?
我正在阅读 Mark Mitchell,Jeffrey Oldham和Alex Samuel 所著的 Advanced Linux Programming。是2001年的,所以有点旧了。但是无论如何我都觉得很好。 但是,当它与Linux在shell输出中产生的结果有所不同时,我到了一个地步。在第92页(查看器中为116)上,第4.5章GNU / Linux线程实现始于包含以下语句的段落: GNU / Linux上的POSIX线程实现与其他许多类UNIX系统上的线程实现有一个重要的区别:在GNU / Linux上,线程被实现为进程。 这似乎是关键点,以后将用C代码进行说明。本书的输出为: main thread pid is 14608 child thread pid is 14610 在我的Ubuntu 16.04中是: main thread pid is 3615 child thread pid is 3615 ps 输出支持这一点。 我猜在2001年到现在之间一定有所改变。 下一页的下一个子章节4.5.1 Signal Handling建立在上一条语句的基础上: 信号和线程之间的交互行为在一个类UNIX系统之间有所不同。在GNU / Linux中,行为是由将线程实现为进程这一事实所决定的。 看起来这在本书的后面将变得更加重要。有人可以解释这是怎么回事吗? …

5
为什么将SIGINT发送到其父进程时不传播到子进程?
给定一个shell进程(例如sh)及其子进程(例如cat),我如何使用shell的进程ID 模拟Ctrl+ 的行为C? 这是我尝试过的: 运行sh然后cat: [user@host ~]$ sh sh-4.3$ cat test test 从另一个终端发送SIGINT到cat: [user@host ~]$ kill -SIGINT $PID_OF_CAT cat 收到信号并终止(如预期)。 将信号发送到父进程似乎不起作用。为什么将信号cat发送到其父进程时不传播到该信号sh? 这不起作用: [user@host ~]$ kill -SIGINT $PID_OF_SH
62 shell  process  signals 

2
围绕流程的括号是什么意思?
$ 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 …
62 process  ps 


2
需要居民集大小/虚拟大小的解释
我发现这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 (这是的输出的一部分pidstat -r -p 7276。) 我应该使用常驻集大小(RSS)或虚拟大小(VSZ)信息来计算平均内存消耗吗?我已经在Wikipedia和论坛上阅读了一些内容,但是我不确定是否完全了解这些区别。另外,似乎它们都不可靠。那么,如何监视进程以获取其内存使用情况? 在此问题上的任何帮助将是有用的。
61 linux  process  memory 


3
在单行bash循环中使用&(与号)
我一直在成功使用此命令,该命令会更改配置文件中的变量,然后在循环内执行Python脚本: for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py; done 由于每个程序DoMyScript.py本身都需要30秒钟才能终止,因此我想将它们放回后台,同时可以生成下一个程序。 我尝试通过添加以下与号来尝试熟悉的内容: for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py &; done 但是,这导致以下错误: -bash:意外令牌';'附近的语法错误

5
如何在solaris中获得完整的进程列表,而没有截断的行?
有没有一种方法可以在solaris中生成完整的过程清单,而不会出现断线?我已经尝试过ps使用以下参数的命令: -f生成完整列表。(请参阅下面的 完整列表中各列的重要性- ing。) -l生成长列表。(见下文。) 因此,这两者似乎都可以满足我的要求,但是在ps手册页中,我发现了这一点: args该命令及其所有参数为 串。实现可能会截断 该值等于场宽;它是 依赖于实现 进一步的截断发生。它是 未指定字符串 表示的是参数的一个版本 传递给命令的列表 它何时开始,或者是 参数可能已被修改 通过应用程序。应用程序无法 取决于能够修改他们的 参数列表并进行修改 反映在ps的输出中。 Solaris实施限制了 字符串到80个字节; 字符串是 参数列表的原样 启动时传递给命令。 基本上说输出将被截断,对此我无能为力。所以,我要来这里。当然,其他人也遇到了这个问题,甚至有办法解决。我猜想ps无法做到这一点,所以我需要使用其他工具来做到这一点。准确吗?
57 process  solaris  ps 

3
哪个进程的PID为0?
我正在寻找在Linux中启动的,进程ID为0的进程。我知道init有PID 1(这是Linux中的第一个进程),是否有PID 0的进程?
55 process 

3
为什么我不能用叉子炸弹使系统崩溃?
最近,我一直在挖掘有关GNU / Linux中进程的信息,并且遇到了臭名昭著的fork炸弹: :(){ : | :& }; : 从理论上讲,它应该无限地自我复制,直到系统用尽资源为止。 但是,我尝试在CLI Debian和GUI Mint发行版上进行测试,并且似乎对系统影响不大。是的,这里创建了无数的进程,过了一会儿我读到控制台消息,例如: bash:fork:资源暂时不可用 bash:fork:重试:没有子进程 但是一段时间后,所有进程都被杀死,一切恢复正常。我读过ulimit设置了每个用户的最大进程数,但是我似乎无法真正提高它。 对叉弹有哪些系统保护措施?它为什么不复制自身,直到一切冻结或至少滞后很多?有没有办法用叉子炸弹使系统真正崩溃?
54 linux  process  fork  ulimit 

7
谁有这个unix套接字对的另一端?
我想确定哪个进程具有UNIX套接字的另一端。 具体来说,我要问的是使用创建的一个socketpair(),尽管问题对于任何UNIX套接字都是相同的。 我有一个程序parent创建一个socketpair(AF_UNIX, SOCK_STREAM, 0, fds)和fork()。父进程关闭fds[1]并保持fds[0]通信。孩子做相反的事情close(fds[0]); s=fds[1]。然后孩子exec()的另一个程序child1。两者可以通过此套接字对来回通信。 现在,假设我知道谁parent是谁,但我想弄清楚谁child1是谁。我该怎么做呢? 我可以使用几种工具,但是没有一个可以告诉我哪个过程在套接字的另一端。我努力了: lsof -c progname lsof -c parent -c child1 ls -l /proc/$(pidof server)/fd cat /proc/net/unix 基本上,我可以看到两个插座以及有关它们的所有内容,但无法确定它们已连接。我正在尝试确定父级中的哪个FD与哪个子进程进行通信。

4
保存整个过程以在重启后继续
我针对数学中的一个相当困难的问题开发了一种算法,可能需要几个月才能完成。由于我只有有限的资源,因此我在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个小时开始运行(太长了,无法取消;-))
54 process  reboot 

5
运行多个命令并将其作为bash中的一个杀死
我想在单个shell上运行多个命令(进程)。它们都有自己的连续输出并且不会停止。在后台运行它们会中断Ctrl- C。我想将它们作为单个进程(可能是subshel​​l)运行,以便能够使用Ctrl- 停止所有进程C。 具体来说,我想使用mocha(监视模式)运行单元测试,运行服务器并运行一些文件预处理(监视模式),并在一个终端窗口中查看每个单元的输出。基本上,我想避免使用某些任务运行程序。 我可以通过在后台(&)中运行进程来实现这一点,但随后必须将其置于前台以停止它们。我希望有一个包装它们的过程,当我停止该过程时,它将停止其“子代”。

4
如何列出进程锁定文件?
使用flock,多个进程可以同时拥有一个共享锁,或者正在等待获取写锁。如何获得这些过程的清单? 也就是说,对于给定的文件X,理想情况下是查找持有或正在等待文件锁的每个进程的进程ID。尽管只是获得等待锁定的进程数的计数,但这将是一个很好的开始。
51 files  process  lock 

4
pkill和killall有什么区别?
我知道该pkill过滤规则比的更多killall。我的问题是,两者之间有什么区别? pkill [signal] name 和 killall [signal] name 我读过这样killall更有效,它可以杀死与name程序匹配的所有进程和子进程(以及递归地)。 pkill也不这样做吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.