GNU/Linux >> Tutoriales Linux >  >> Linux

Ejecutar un proceso persistente a través de ssh

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.


Linux
  1. ¿Ejecutar verdaderas instancias de múltiples procesos de Gnome-terminal?

  2. Ssh:¿cómo hacer que un proceso que comienzo durante una sesión de Ssh se ejecute después de que la sesión haya finalizado?

  3. ¿Redirigiendo una salida de un subshell a un proceso?

  4. ¿Systemd ejecuta la unidad en caso de éxito de otra?

  5. ¿Cómo Scp a través de una máquina intermedia?

Cómo ejecutar contenedores como servicio Systemd con Podman

Ejecutar comandos en sistemas Linux remotos a través de SSH

Ordenar la gestión de procesos con ps o systemd

Cómo SSH al servidor a través de Linux

Archivos Rsync a través de host intermedio

¿Puede un proceso ejecutarse independientemente de cualquier shell?