我正在寻找一个 Linux 命令,它实际上什么都不做,不输出任何内容,但一直存活到^C.
while true; do; done 不是一个好的解决方案,因为它是 CPU 密集型的。
ilk*_*chu 25
如果我们看一下system calls,实际上有一个就是这样做的,pause(2):
pause()导致调用进程(或线程)休眠,直到传递信号...
当然,那么我们只需要一个使用它的程序。除了编译下面的两行 C 程序外,最简单的方法可能是使用 Perl:
perl -MPOSIX -e pause
Run Code Online (Sandbox Code Playgroud)
在 C 中:
perl -MPOSIX -e pause
Run Code Online (Sandbox Code Playgroud)
dr_*_*dr_ 18
只需添加一个sleep命令。
while true; do sleep 600; done
Run Code Online (Sandbox Code Playgroud)
将在循环之间休眠 10 分钟。
rud*_*ier 16
由于您提到了 ctrl-C,我假设您想在交互式终端中使用它。所以你可能只是等待输入。
$ read
Run Code Online (Sandbox Code Playgroud)
或者只是使用从标准输入读取的任意其他命令,例如cat. 只要没有输入,他们就“什么都不做”。
$ cat >/dev/null
Run Code Online (Sandbox Code Playgroud)
甚至不使用标准输入甚至更好:
$ tail -f <<EOF
EOF
Run Code Online (Sandbox Code Playgroud)
del*_*tab 16
GNUsleep和(但不是)的sleep内置接受任何浮点数,而不仅仅是整数,所以你可以这样做:ksh93mksh
sleep infinity
Run Code Online (Sandbox Code Playgroud)
你可以:
tail -f /an/existing/regular/file >/dev/null
Run Code Online (Sandbox Code Playgroud)
这将不会使用 stdin(就像read那样)并且将等待新添加到 /an/existing/regular/file (不适用于某些文件:tail -f /dev/null将立即退出。但适用于所有常规文件。如果该文件是不增长,命令会吃很少的cpu)
不是永远,但有sleep。您可以将您的while循环与睡眠结合起来- 甚至似乎都不会让我gkrellm显示器中的 CPU 发痒。
dr01 打字速度比我快 :) ... 所以更多信息 - 您的 CPU 峰值是因为它必须不断处理逻辑检查,之间没有停顿....
while true
do
sleep 100
done
Run Code Online (Sandbox Code Playgroud)
或者作为单线
while true; do sleep 100; done
| 归档时间: |
|
| 查看次数: |
7386 次 |
| 最近记录: |