是否有一个 Linux 命令不执行任何操作,但从不退出?

是否有一个 Linux 命令不执行任何操作,但从不退出?

我正在寻找一个 Linux 命令,它实际上不执行任何操作,不输出任何内容,但一直保持活动状态直到^C

while true; do; done这不是一个好的解决方案,因为它是 CPU 密集型的。

答案1

如果我们看一下系统调用,实际上有一个可以做到这一点,pause(2)

pause()导致调用进程(或线程)休眠,直到传递信号......

当然,那么我们只需要一个使用它的程序。除了编译下面的两行 C 程序之外,最简单的方法可能是使用 Perl:

perl -MPOSIX -e pause

在C中:

#include <unistd.h>
int main(void) { return pause(); }

答案2

GNUsleepsleep的内置函数ksh93(但不是mksh)接受任何浮点数,而不仅仅是整数,所以你可以这样做:

sleep infinity

答案3

只需添加一个sleep命令即可。

while true; do sleep 600; done

将在循环之间休眠 10 分钟。

答案4

你可以:

tail -f /an/existing/regular/file >/dev/null

这不会使用标准输入(就像read会那样),并将等待 /an/existing/regular/file 的新添加(对某些文件不起作用:tail -f /dev/null将立即退出。但适用于所有常规文件。如果该文件是不增长,该命令会消耗很少的CPU)

相关内容