Existe um comando do Linux que não faz nada, mas nunca sai?

Existe um comando do Linux que não faz nada, mas nunca sai?

Estou procurando um comando do Linux que não faça literalmente nada, não produza nada, mas permaneça ativo até ^C.

while true; do; donenão é uma boa solução, porque exige muito da CPU.

Responder1

Se olharmoschamadas do sistema, na verdade existe um que faz exatamente isso,pause(2):

pause()faz com que o processo de chamada (ou thread) durma até que um sinal seja entregue ...

Claro, então precisaríamos apenas de um programa que o utilizasse. Além de compilar o programa C de duas linhas abaixo, a maneira mais fácil é provavelmente com Perl:

perl -MPOSIX -e pause

Em C:

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

Responder2

GNU sleepe o sleepbuiltin de ksh93(mas não mksh) aceitam qualquer número de ponto flutuante, não apenas números inteiros, então você pode fazer isso:

sleep infinity

Responder3

Basta adicionar um sleepcomando.

while true; do sleep 600; done

dormirá por 10 minutos entre os loops.

Responder4

você pode:

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

Isso não usará stdin (como readfaria) e ficará aguardando uma nova adição a /an/existent/regular/file (não funciona em alguns arquivos: tail -f /dev/nullserá encerrado imediatamente. Mas funcionará para todos os arquivos regulares. Se esse arquivo for não crescendo, o comando consumirá pouca CPU)

informação relacionada