start-stop-daemon可以使用环境变量吗?


10

我需要守护运行在Wine中的Windows应用程序,并在中创建一个pid /var/run。由于它需要X11会话才能运行,因此我需要确保在正在运行的用户环境中设置了$ DISPLAY变量。

假设我已经在运行X11会话并具有给定的显示,这就是/etc/init.d脚本中start-stop-daemon行的样子:

start-stop-daemon --start --pidfile /var/run/wine-app.pid -m -c myuser -g mygroup -k 002 --exec /home/myuser/.wine/drive_c/Program\ Files/wine-app.exe

不幸的是,我在Ubuntu 8.04上的start-stop-daemon版本没有-e设置环境变量的选项。我认为您可以在命令前简单地设置$ DISPLAY,如下所示:

VAR1="Value" start-stop-daemon ...

但这是行不通的。由于我使用该-c {user}选项以特定用户身份运行,因此我猜测存在环境切换,并且VAR1丢失了。我试过从正在运行的用户导出DISPLAY .profile和/或,.bashrc但是它也不起作用。

还有另一种方法吗?这有可能吗?我在俯视什么吗?

Answers:


3

您可以编写一个shell脚本来设置变量,然后运行wine。


还没有机会付诸实践,但是我写了脚本,这似乎是最好的方法。谢谢你的提示!
scottburton

21

您可以env用来修改环境:

start-stop-daemon --start --pidfile /var/run/wine-app.pid -m -c myuser -g mygroup -k 002 --exec /usr/bin/env VAR1="Value" /home/myuser/.wine/drive_c/Program\ Files/wine-app.exe
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.