我在前台运行了一个子进程,他的父亲已经离开了。
如果父进程已退出,则proc/$pid/stat文件不再包含父pid,并且它将显示1而不是原始父pid。
linux$cat /proc/6267/stat
6267 (test3.sh) S 1 6265 ......
# ^
# |
# I expected to get the origin parent pid but I get 1
要快速再现这种行为,我们可以使用以下脚本
test2.sh
#!/bin/sh
echo "test2=$$"
因此,可以使用timeout来设置进程/命令的最终时限,就像提到的和一样。例如,timeout 300 sleep 1000将在300秒后返回提示,而不是1000秒。
但是,在进程仍在运行时,是否有任何方法可以动态地修改此限制?所以这就是我要找的。
at time 0 : timeout 300 python long_run.py
at time 250 : <some way to extend the timeout limit by another 300 minutes or so>
我试过两种方法,但没能成功。
通过GDB
我试图使用gdb附加到timeout进程。它
因此,我为mongod守护进程(遵循)编写了Arch Linux rc.d脚本,但当我这样做时:
sudo rc.d start mongod
它只是卡住了:
:: Starting /usr/bin/mongod [BUSY]
并且永远不会转换到“完成”阶段。有什么建议吗?
下面是我的脚本:
#!/bin/bash
# import predefined functions
. /etc/rc.conf
. /etc/rc.d/functions
# Point to the binary
DAEMON=/usr/bin/mongod
# Get the ARGS f
如何用c语言在ubuntu linux机器上查找进程启动时间。在linux中,有/proc/pid/stat文件,它提供信息
starttime %lu /*The time in jiffies the process started after system boot*/
和文件/proc/stat,它提供了
btime %lu /*measurement of system boot time since Epoch in seconds*/
为了将这两个值相加,我如何将以前的值转换为秒,因为它是以jiffies为单位的。
当我为某个进程执行topas时,在CPU%列中显示43%,并跳转到85%。
当我执行:
"ps aux | grep processName"
同样的工艺为5%。
更准确的是什么?我还做了一个类似于Linux "watch“命令的循环,我看到它在%5。
托帕斯和ps有什么区别,谁是对的?
ps的输出:
[ttfai231:root]/root>ps aux | head -1; ps aux | sort -rn +2 | head -10
USER PID %CPU %MEM SZ RSS TTY STAT STIME
我正在写一个bash脚本来启动一个不确定的程序。程序的运行时间未知。该脚本还将启动一个while循环,用于使用linux命令或perf以1秒的方式记录某些内容。
./my_app &
$i=1
while true;
do
perf stat -a -A -e writeback:writeback_dirty_page sleep $i >> out
done
如何在my_app完成时停止while循环?谢谢。