
文字通り何もせず、何も出力しないが、 まで存続する Linux コマンドを探しています^C
。
while true; do; done
CPU を大量に消費するため、良い解決策ではありません。
答え1
見てみるとシステムコール実際にまさにそれを実現するものが存在します。pause
(2):
pause()
呼び出しプロセス (またはスレッド) をシグナルが配信されるまでスリープ状態にします...
もちろん、それを使用するプログラムが必要です。以下の 2 行の C プログラムをコンパイルする以外に、最も簡単な方法はおそらく Perl を使用することです。
perl -MPOSIX -e pause
C の場合:
#include <unistd.h>
int main(void) { return pause(); }
答え2
GNUsleep
とsleep
の組み込み関数ksh93
( は除くmksh
) は、整数だけでなく任意の浮動小数点数を受け入れるため、次のように実行できます。
sleep infinity
答え3
コマンドを追加するだけですsleep
。
while true; do sleep 600; done
ループ間で 10 分間スリープします。
答え4
あなたはできる:
tail -f /an/existing/regular/file >/dev/null
これは stdin を使用せず (使用read
する場合)、/an/existing/regular/file への新規追加を待機します (一部のファイルでは機能しません。tail -f /dev/null
すぐに終了します。ただし、すべての通常のファイルでは機能します。そのファイルが大きくならない場合は、コマンドは CPU をほとんど消費しません)