
Estoy buscando un comando de Linux que literalmente no haga nada, no genere nada, pero permanezca activo hasta ^C
.
while true; do; done
no es una buena solución porque consume mucha CPU.
Respuesta1
si miramosllamadas al sistemaDe hecho, hay uno que hace exactamente eso.pause
(2):
pause()
hace que el proceso de llamada (o hilo) entre en suspensión hasta que se entregue una señal...
Por supuesto, entonces sólo necesitaríamos un programa que lo use. A falta de compilar el programa C de dos líneas que aparece a continuación, la forma más sencilla probablemente sea con Perl:
perl -MPOSIX -e pause
Cª:
#include <unistd.h>
int main(void) { return pause(); }
Respuesta2
GNU sleep
y la sleep
versión integrada de ksh93
(pero no mksh
) aceptan cualquier número de punto flotante, no solo números enteros, por lo que puedes hacer esto:
sleep infinity
Respuesta3
Simplemente agregue un sleep
comando.
while true; do sleep 600; done
Dormirá durante 10 minutos entre bucles.
Respuesta4
puede:
tail -f /an/existing/regular/file >/dev/null
Esto no usará stdin (como read
lo haría) y permanecerá esperando una nueva adición a /un/existing/regular/file (no funciona en algunos archivos: tail -f /dev/null
saldrá inmediatamente. Pero funcionará para todos los archivos normales. Si ese archivo es no crece, el comando consumirá poca CPU)