首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单声道服务的systemd配置

单声道服务的systemd配置
EN

Stack Overflow用户
提问于 2014-08-03 10:11:28
回答 2查看 2.8K关注 0票数 0

我可以在Fedora 19上使用mono-service将mono应用程序作为守护进程运行。

要设置一些环境变量,首先必须执行一个脚本

代码语言:javascript
复制
/opt/mono/env.sh

然后,我可以使用以下命令将mono应用程序作为守护进程运行

代码语言:javascript
复制
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配置的服务。我的尝试没有成功

我的配置是

代码语言:javascript
复制
[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

代码语言:javascript
复制
# .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

任何关于我做错了什么或应该做什么的指点都会被征集。

EN

回答 2

Stack Overflow用户

发布于 2014-08-04 09:08:15

systemd不运行用户的bash rc。您需要使用Environment=指令设置环境变量。或者,使用包装器脚本/opt/mono/bin/mono-service-wrapper.sh:

代码语言:javascript
复制
#! /bin/sh

. /opt/mono/env.sh

exec /opt/mono/bin/mono-service $@

然后,只需将systemd服务更改为使用包装器脚本(保留参数)。

票数 0
EN

Stack Overflow用户

发布于 2015-06-09 09:45:12

在您的systemd单元中使用EnvironmentFile=加载包含环境变量的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25100992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档