- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何获取在tty2中启动的进程在tty1中的pid?
上下文:
当文件超过预定义的最大大小时,尝试编写一个 bash 单行程序来终止生成文件的进程。 (单行程序尚未运行,因为需要将其嵌入到循环中)。
在测试期间,要点是 lsof 不会在终端 tty1 中返回任何 PID,尽管该 pid 存在于运行命令的 tty2 中。
tty1:生成文件并监控变化
MAX_SIZE_Ko=10001;file=test_lsof;dd if=/dev/zero of=$file bs=1k count=800;inotifywait $file;SIZE_Ko=$(du -s $file | cut -f1); [[ "$SIZE_Ko" -gt "$MAX_SIZE" ]] && ( PID=$(lsof $file | tail -n1 | awk -F" " '{ print $2 }') ; [[ ! -z $PID ]] && kill -9 $PID || echo "no running PID modifying $file" )
tty2 : 增加文件大小
for (( 1; 1; 1));do echo -e "foobar\n" >> test_lsof; echo $(( i++ ))" - pid="$$; done
最佳答案
正如在另一个答案中提到的,文件只打开了很短的时间,所以你的 lsof 捕获它的几率很低。
但是,您可以更改它:
exec 5>test_lsof
for (( 1; 1; 1)); do
echo -e "foobar\n" >&5
echo $(( i++ ))" - pid="$$
done
这使用高级 shell 重定向 - exec 行打开一个文件描述符,>&5 将命令的输出重定向到该文件描述符。
如果这样做,shell 将对 lsof 可见。
关于linux - bash lsof : get pid from one tty to another one,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9299545/
我已经运行了命令 sudo lsof -i tcp:46265 输出 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysq
文件被 fcntl(非阻塞)或某种自定义方式锁定。所以我正在使用 lsof 并检查进程的 pid 是否在那里。如果 lsof 返回空白,则表示没有使用它。 但是,我的脚本中的 lsof 需要 200
这是我的程序的样子 Reference import java.io.BufferedReader; import java.io.InputStreamReader; public class Ex
我正在使用以下 lsof命令: lsof -iTCP -a -sTCP:^LISTEN -a -p 如果有一些输出,此命令将返回退出代码 0但如果没有输出,退出代码是 1 . echo $? 谁能解
我在想,如果 的输出 lsof -i sshd 21880 root 3r IPv4 4843515 TCP somehost.lu.isp.com:ssh->d
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我想知道每个进程打开的文件数,因此我使用 lsof 命令: lsof -n | awk '{print $2}'|sort |uniq -c |sort -nr| more 我发现一个 pid "93
我使用以下命令来查明文件描述符是否已打开: /usr/sbin/lsof -a -c sqlplus -u ${USER} | grep -l "${FILE_NAME}” 如果不是,我会执行一些操作
我在 linux 系统上使用以下命令: lsof -i -n | egrep '\'|awk '{print $8,$9}' 它产生这样的输出: 192.168.199.52:ssh->192.168
如何让 lsof 生成数字端口信息而不是尝试将端口解析为服务名称? 例如,我希望 TCP *:http (LISTEN) 给我 TCP *:80 (LISTEN) 事实上,如果可能的话,我从不想再次在
当我运行 lsof 命令时,在名称列中,对于套接字,一些数字出现在括号中,如下所示。什么意思? command pid user fd
我正在使用以下 lsof 命令: lsof -iTCP -a -sTCP:^LISTEN -a -p 如果有一些输出,此命令返回退出代码 0,但如果没有输出,则退出代码为 1。 echo $? 谁能
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制
当我运行 pgrep vim | xargs echo,它打印 93868 91234。 当我运行 lsof -p 91234 时,它会打印: COMMAND PID USER FD TY
比如说,我有一个特定的任务来查找 的文件。未开 .我了解如何使用 lsof ( lsof +D ) 获取打开文件的列表。此外,我只需要在所谓的第一级子目录中找到它们。为此,我使用 find带有 max
编辑 1 我在使用给定的参数时遇到问题。也许这是我通过 NSTask 传递参数的方式?关于我如何做到这一点的任何建议? NSTask *file_Task = [NSTask new]; [file_
我使用 lsof 命令只运行一个 setup.sh 实例,如果没有参数值,它工作正常。但是,我需要在 setup.sh 中传递参数,例如 setup.sh machine1 setup.sh mach
我想借助 lsof 在日志中打印有关已打开资源的信息,但我不想让客户看到使用了哪些库。我浏览了 lsof 手册页,但我无法理解如何从输出中仅排除库。有没有简单的方法来做到这一点? 最佳答案 您可以使用
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我是一名优秀的程序员,十分优秀!