我有很多 Upstart 会话作业,其中包括启动 Tor、开发 Web 服务器等。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
如您所见,会话作业运行良好,如果我登录到 GUI,status tor9050
将显示预期的tor9050 start/running, process 31096
输出。
那么:如何通过 SSH 获取 Upstart 会话作业的状态并以其他方式控制它?
Upstart Cookbook (4.3.1.1: Joining a Session)中给出了一种我觉得很麻烦的方法。你必须设置
UPSTART_SESSION
:之后,它工作正常: