У меня довольно много заданий сеанса 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