0

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

私が間違っていること、またはすべきことについての指針が求められます。

4

2 に答える 2

0

systemd ユニットで使用EnvironmentFile=して、環境変数を含むファイルをロードします。

于 2015-06-09T01:45:11.997 に答える
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 サービスを変更して、ラッパー スクリプトを使用します (引数を保持します)。

于 2014-08-04T01:08:14.717 に答える