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