我可以在Fedora 19上使用mono-service将mono应用程序作为守护进程运行。
要设置一些环境变量,首先必须执行一个脚本
/opt/mono/env.sh然后,我可以使用以下命令将mono应用程序作为守护进程运行
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任何关于我做错了什么或应该做什么的指点都会被征集。
发布于 2014-08-04 09:08:15
systemd不运行用户的bash rc。您需要使用Environment=指令设置环境变量。或者,使用包装器脚本/opt/mono/bin/mono-service-wrapper.sh:
#! /bin/sh
. /opt/mono/env.sh
exec /opt/mono/bin/mono-service $@然后,只需将systemd服务更改为使用包装器脚本(保留参数)。
发布于 2015-06-09 09:45:12
在您的systemd单元中使用EnvironmentFile=加载包含环境变量的文件。
https://stackoverflow.com/questions/25100992
复制相似问题