Linux

start-stop-daemon 可以使用環境變數嗎?

  • February 18, 2022

我需要守護在 Wine 中執行的 Windows 應用程序,並在/var/run. 由於它需要執行 X11 會話,因此我需要確保在執行使用者的環境中設置了 $DISPLAY 變數。

/etc/init.d假設我已經有一個 X11 會話正在執行,並且具有給定的顯示,這就是我的腳本中 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 失去了。我已經嘗試從正在執行的使用者.profile和/或導出 DISPLAY ,.bashrc但它也不起作用。

還有另一種方法可以做到這一點嗎?這甚至可能嗎?我忽略了什麼嗎?

您可以編寫一個 shell 腳本來設置變數,然後執行 wine。

可以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

引用自:https://serverfault.com/questions/128389