Как управлять заданием сеанса Upstart через SSH?

Как управлять заданием сеанса Upstart через SSH?

У меня довольно много заданий сеанса Upstart, которые, помимо прочего, запускают Tor, веб-сервер разработки и т. д. Я могу использовать команды initctlи их сокращения, когда я вхожу в систему через GUI. Однако через SSH ни одна команда Upstart не показывает даже малейшего намека на то, что она знает о заданиях сеанса. Таким образом:

$ 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

Как видите, задание сеанса работает нормально, и если бы я вошел в графический интерфейс, то status tor9050увидел бы ожидаемый tor9050 start/running, process 31096вывод.

Итак: как я могу получить статус и иным образом управлять заданием сеанса Upstart по SSH?

решение1

Один из способов, который я нахожу громоздким, приведен вПоваренная книга Upstart (4.3.1.1: Присоединение к сеансу). Вам необходимо установить UPSTART_SESSION:

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

После этого все работает нормально:

$ status tor9050                                                             
tor9050 start/running, process 31096

Связанный контент