Si está utilizando SSH en una distribución de Linux que tiene systemd, puede usar systemd-run
para iniciar un proceso en segundo plano (en términos de systemd, "un servicio transitorio"). Por ejemplo, suponiendo que desea hacer ping a algo en segundo plano:
systemd-run --unit=pinger ping 10.8.178.3
El beneficio que obtendrá con systemd en lugar de simplemente ejecutar un proceso con nohup
es que systemd rastreará el proceso y sus hijos, mantendrá registros, recordará el código de salida y le permitirá eliminar limpiamente el proceso y todos sus hijos. Ejemplos:
Ver el estado y las últimas líneas de salida:
systemctl status pinger
Transmita la salida:
journalctl -xfu pinger
Matar:
systemctl kill pinger
Como alternativa a nohup
, podría ejecutar su aplicación remota dentro de un multiplexor de terminal, como GNU screen
o tmux
.
El uso de estas herramientas facilita la reconexión a una sesión desde otro host, lo que significa que puede iniciar una compilación o descarga larga antes de salir del trabajo y verificar su estado cuando llegue a casa. Por ejemplo. Encuentro esto particularmente útil cuando hago trabajo de desarrollo en servidores que son muy remotos (en un país diferente) con conectividad poco confiable entre ellos y yo, si la conexión se cae, simplemente puedo volver a conectarme y continuar sin perder ningún estado.