ヘッドレスサーバーのdavmail systemdランチャー

ヘッドレスサーバーのdavmail systemdランチャー

私はArchWikiガイドに従って書くことを試みています。カスタムサービスファイル発表DAFメールシステム全体のデーモンとして機能します。過去には ~/.xinitrc に次のような行がありました。

nohup /usr/bin/davmail /etc/conf.d/davmail.properties

DavMailの指示に従ってください(/usr/bin/davmailシンボルリンクはどこにありますか/usr/share/java/davmail/davmail.sh?)。今私のコンピュータをヘッドレスサーバーに切り替えたので、自動イニシエータはXセッションとは無関係になりたいです。

DavMail initスクリプトについてオンラインで見たすべてのガイドは、ディストリビューションがsystemdではなくsysvinitを使用していると仮定しています。 systemdサービスファイルをカスタマイズする私の試みは次のとおりです。

[Unit]
Description=DavMail Exchange Gateway
Requires=network.target
After=network.target

[Service]
Type=forking
RemainAfterExit=yes
ExecStart=/usr/bin/davmail /etc/conf.d/davmail.properties
ExecStop=killall davmail

[Install]
WantedBy=multi-user.target

正しくフォークできません。 systemdが無効な引数について文句を言うので、ExecStartコマンドプレフィックスを付ける/usr/bin/nohupことは役に立ちません(以前のフォーラムの答えを正しく理解した場合は、デーモン自体を制御することをお勧めします)。サービスタイプをoneshotまたはに変更してsimpleも失敗します。

ここで1つの問題は、DavMailを実行するにはJavaインタプリタが必要であり、systemdサービスファイルはJavaインタプリタにタスクを渡すシェルスクリプトほど柔軟ではないということです。しかし、たぶんもっと簡単な説明があるかもしれません。共有したいDavMail用のシステムサービスファイルを正常に作成した人はいますか?

ベストアンサー1

これを単純なサービスとして定義する必要があります(ポーキングは、デーモンがすでに起動されたときに完了するプロセスのためのものです)。 Archでは魅力のように動作するので

[Unit]
Description=DavMail Exchange Gateway
Requires=network.target
After=network.target

[Service]
Type=simple
RemainAfterExit=no
ExecStart=/usr/bin/davmail /etc/conf.d/davmail.properties
ExecStop=killall davmail

[Install]
WantedBy=multi-user.target

おすすめ記事