¿Existe algún mecanismo para ejecutar un "servicio" por parte de un usuario no root?

¿Existe algún mecanismo para ejecutar un "servicio" por parte de un usuario no root?

¿Hay alguna manera de tener un proceso en segundo plano en ejecución continua que pueda ser controlado por mí (un usuario normal, no root)?

Todo lo que necesito poder hacer es iniciar, detener y reiniciar el proceso. Monitorear por PID y enviar SIGHUP o SIGINT para su terminación está bien. Estoy de acuerdo con usar un script bash complicado, no tiene que ser algo para todo el sistema. Sólo para mí.

También necesito que no se detenga cuando cierre sesión en ssh.

¿Hay alguna manera de hacer esto en RHEL 6.4?

Respuesta1

pantalla o tmux

Seguro que puede iniciar procesos y luego ejecutarlos de forma continua utilizando un multiplexor de terminal como screen o tmux. Los procesos pueden continuar persistiendo en una pantalla o sesión de tmux, y usted puede conectarse/desconectarse de cualquiera de ellas (pantalla o tmux) según sea necesario.

antecedentes

Puede ejecutar cualquier proceso que desee, luego ponerlo en segundo plano y luego desconectarlo de su terminal actual usando el comando disown.

$ disown -a

Además, si solo desea iniciar un proceso y no tener que ponerlo en segundo plano, disownpuede usar el comando nohup.

$ nohup myexec &

Cuando salga del shell, myexecseguirá ejecutándose.

Ejemplo

Iniciar un proceso falso.

$ sleep 12345 &
[1] 24339
$

Asegúrate de que podamos verlo:

$ pgrep -f "sleep 12345"
24339

Pero todavía está conectado a nuestra terminal:

$ jobs
[1]+  Running                 sleep 12345 &

Así que vamos a disownhacerlo:

$ disown -a
$ jobs
$

Mira, todavía está funcionando:

$ pgrep -f "sleep 12345"
24339

Ahora cerremos la sesión y volvamos a iniciarla. Mira, todavía está ahí:

$ pgrep -f "sleep 12345"
24339

Puede finalizar este proceso en cualquier momento utilizando medios estándar:

$ pkill -HUP -f "sleep 12345"
$ pgrep -f "sleep 12345"
$ 

Lo anterior enviará la señal HUPa un nombre de proceso que coincida con el patrón "dormir 12345". Una doble verificación muestra que ya no está.

información relacionada