如何透過 SSH 控制 Upstart 會話作業?

如何透過 SSH 控制 Upstart 會話作業?

initctl我有很多 Upstart 會話作業,其中包括啟動 Tor、開發 Web 伺服器等。然而,透過 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

正如您所看到的,會話作業工作正常,如果我登入 GUI,status tor9050將顯示預期的tor9050 start/running, process 31096輸出。

那麼:如何透過 SSH 取得 Upstart 會話作業的狀態並以其他方式控制該作業?

答案1

一種我認為很麻煩的方法是新貴食譜(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

相關內容