当我想在整个树中搜索某些内容时,我使用
find . -type f -print0 | xargs -0 grep <search_string>
Run Code Online (Sandbox Code Playgroud)
在性能或简洁方面有没有更好的方法来做到这一点?
继“如何将 strace 附加到不在 ps 输出中的进程? ”中描述的问题之后。
我正在尝试调试一个中途挂起的进程。
通过strace -f
在我的父进程上使用,我能够确定我有一堆正在显示的线程:
# strace -p 26334
Process 26334 attached - interrupt to quit
epoll_wait(607, {}, 4096, 500) = 0
epoll_wait(607, {}, 4096, 500) = 0
epoll_wait(607, {}, 4096, 500) = 0
epoll_wait(607, {}, 4096, 500) = 0
epoll_wait(607, ^C <unfinished ...>
Process 26334 detached
Run Code Online (Sandbox Code Playgroud)
进一步调查:
# readlink /proc/26334/fd/607
anon_inode:[eventpoll]
Run Code Online (Sandbox Code Playgroud)
我的直觉告诉我,我已经设法让一些线程处于死锁状态,但我epoll
对继续前进的了解还不够多。是否有任何命令可以让我深入了解这些线程正在轮询什么,或者这个 epoll 描述符映射到哪些文件描述符。
我有一个脚本,打算作为 systemd 服务运行。
我知道 stdout 和 stderr 将被路由到 systemd 日志。有什么方法可以让我表明一行输出被视为 INFO 或 ERROR 或任何合适的?