¿Cómo controlo un trabajo de sesión Upstart a través de SSH?

¿Cómo controlo un trabajo de sesión Upstart a través de SSH?

Tengo bastantes trabajos de sesión Upstart que, entre otras cosas, inician Tor, un servidor web de desarrollo, etc. Puedo usar los initctlcomandos y sus abreviaturas perfectamente cuando inicio sesión en el sistema a través de la GUI. Sin embargo, a través de SSH, ningún comando Upstart muestra ni el más mínimo indicio de estar al tanto de los trabajos de sesión. De este modo:

$ cat ~/.config/upstart/tor9050.conf
description "Tor on port 9050"
start on desktop-start
stop on session-end

respawn

expect daemon
exec /usr/sbin/tor -f /home/muru/.torrc9050
$ status tor9050
status: Unknown job: tor9050
$ pgrep -fa 9050
31096 /usr/sbin/tor -f /home/muru/.torrc9050

Como puede ver, el trabajo de la sesión está funcionando bien y, si iniciara sesión en la GUI, status tor9050mostraría el tor9050 start/running, process 31096resultado esperado.

Entonces: ¿cómo puedo obtener el estado y controlar de otro modo un trabajo de sesión Upstart a través de SSH?

Respuesta1

Una forma, que me parece engorrosa, se da enel libro de cocina advenedizo (4.3.1.1: Unirse a una sesión). Tienes que configurar UPSTART_SESSION:

export XDG_RUNTIME_DIR=/run/user/$(id -u)
export UPSTART_SESSION=$(initctl list-sessions | awk '{print $2; quit}')

Después de eso, funciona bien:

$ status tor9050                                                             
tor9050 start/running, process 31096

información relacionada