我有一个由 Upstart 启动的服务器:
/etc/init/server.conf
description "Server"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec /opt/myserver/runmyserver.sh
为了正常运行,它需要另一个操作系统服务,因此它也通过 upstart 启动:
/etc/init/screen.conf
description "Screen"
start on runlevel [2345]
stop on runlevel [016]
respawn
export DISPLAY=:1
exec /usr/bin/Xvfb $DISPLAY
问题是,我的服务器在运行时看不到 DISPLAY var,除非我通过将 server.conf 的启动节替换为
start on started screen
我知道 Upstart 是基于事件的并行初始化系统,并且不保证顺序,但我不关心哪一个先启动,或者它们是否一起启动,只要它们共享相同的环境(变量)。
这里事情复杂化的事实是,server.conf 实际上不属于我,而且我不想修改它,除非必须。
有没有办法让 DISPLAY var 对在 server.conf 中启动的服务器可见,而无需修改它?
谢谢