Linuxで実行するための2つのサービスインスタンスの設定

Linuxで実行するための2つのサービスインスタンスの設定

本質的に私が何をすべきかを理解しようとしているのは、アイドル状態のLinux Mintシステムでサービスの2つのインスタンスを同時に実行するために見つけたいくつかのスクリプトを変更することです。

サービスの最初のインスタンスを設定するには、ここのガイドラインを使用しました。

https://www.linode.com/docs/game-servers/host-a-terraria-server-on-your-linode

今、私はこの指示に従い、同じスクリプトを使用して2番目のサービスを作成するように変更したいと思います。

サービスは、コンピュータ全体が再起動される前に開始されますが、起動せずにそのまま残ります。 2番目の.serviceファイルを最初の '/etc/systemd/system/'と同じ場所に配置しました。サービスファイルの内容は次のとおりです。

[Unit]
Description=server daemon for whim

[Service]
Type=forking
User=whim
KillMode=none
ExecStart=/usr/bin/screen -dmS whim /bin/bash -c "/opt/terraria/TerrariaServer.bin.x86_64 -config /opt/terraria/whimserverconfig.txt"
ExecStop=/usr/local/bin/whimd exit

[Install]
WantedBy=multi-user.target

今、コンピュータを再起動する最大の理由は別のエラーです。ここのガイドラインで基本管理用のスクリプトを設定しました。最初と同じ位置に配置されます。 '/usr/local/bin/' ファイルの内容は次のとおりです。

#!/usr/bin/env bash

send="`printf \"$*\r\"`"
attach='script /dev/null -qc "screen -r whim"'
inject="screen -S whim-X stuff $send"

if [ "$1" = "attach" ] ; then cmd="$attach" ; else cmd="$inject" ; fi

if [ "`stat -c '%u' /var/run/screen/S-whim/`" = "$UID" ]
then
    $cmd
else
    su - whim-c "$cmd"
fi

サービスが動作を停止する前に、新しいwhim.serviceの画面に接続できないことが問題でした。

だから私の質問はこんな感じです。

これら2つのファイルのうちの1つを修正するときに間違えましたか?それとももっと基本的な内容が欠けていますか?

答え1

terraria /bin/bashwhim/bin/bash以下のように名前を変更すると、次のスペースが削除されました。これにより、サービスユニットとスクリプトファイルのさまざまな部分にエラーが発生します。

サービスと対話するために必要なプログラムを実行するためにシステム全体のサービス(および必要なサービス)で実行される完全なデザインは、やや不安定に見えますが、screen実際にはそうではありません。

関連情報