我可以在Fedora 19上使用mono-service作为守护进程运行单声道应用程序。
要设置一些环境变量,我首先必须执行脚本
/opt/mono/env.sh
然后我可以使用
将单声道应用程序作为守护程序运行mono-service -d:/opt/mediabrowser-server/ -m:mediabrowser-server -n:mediabrowser-server /opt/mediabrowser-server/MediaBrowser.Server.Mono.exe -programdata /var/opt/mediabrowser-server/
我希望应用程序能够作为具有systemd配置的服务自动启动。我的尝试没有成功
我的配置是
[Unit]
Description=Media Browser 3
[Service]
User=smitopher
Group=smitopher
ExecStart=/opt/mono/bin/mono-service -d:/opt/mediabrowser-server/ -m:mediabrowser-server -n:mediabrowser-server /opt/mediabrowser-server/MediaBrowser.Server.Mono.exe -programdata /var/opt/mediabrowser-server/
Type=forking
TimeoutStopSec=20
[Install]
WantedBy=multi-user.target
用户已将脚本添加到.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
. /opt/mono/env.sh
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
有关我错误或应该做的事情的任何指示都会被征求。
答案 0 :(得分:0)
systemd不会运行用户的bash rc。您需要使用Environment =指令设置环境变量。或者,使用包装器脚本/opt/mono/bin/mono-service-wrapper.sh:
#! /bin/sh
. /opt/mono/env.sh
exec /opt/mono/bin/mono-service $@
然后只需更改systemd服务以使用包装器脚本(保留参数)。
答案 1 :(得分:0)
在systemd单元中使用EnvironmentFile=
加载包含环境变量的文件。