Linux에서 실행되도록 두 개의 서비스 인스턴스 설정

Linux에서 실행되도록 두 개의 서비스 인스턴스 설정

본질적으로 제가 어떻게 해야 할지 알아내려고 하는 것은 유휴 Linux Mint 시스템에서 서비스의 두 인스턴스를 동시에 실행하기 위해 찾은 일부 스크립트를 수정하는 것입니다.

서비스의 첫 번째 인스턴스를 설정하기 위해 여기 지침을 사용했습니다.

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

이제 이 지침을 따르고 동일한 스크립트를 사용하여 두 번째 서비스를 생성하도록 변경하려고 합니다.

서비스는 전체 컴퓨터가 다시 시작되기 전에 시작되지만 시작되지 않고 그대로 유지됩니다. 두 번째 .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의 화면에 연결할 수 없다는 것이 문제였습니다.

그래서 내 질문은 이렇습니다.

이 두 파일 중 하나를 수정할 때 실수를 했나요? 아니면 더 기본적인 내용이 빠졌나요?

답변1

terraria /bin/bashwhim/bin/bash아래와 같이 이름 변경 시 다음 공백이 제거되었습니다 . 이로 인해 서비스 단위 및 스크립트 파일의 여러 부분에 오류가 발생합니다.

서비스로 상호 작용하는 데 필요한 프로그램을 실행하기 위해 시스템 전체 서비스(및 필요한 서비스)로 실행되는 전체 디자인은 다소 불안정해 보이지만 screen실제로는 그렇지 않습니다.

관련 정보