본질적으로 제가 어떻게 해야 할지 알아내려고 하는 것은 유휴 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/bash
whim/bin/bash
아래와 같이 이름 변경 시 다음 공백이 제거되었습니다 . 이로 인해 서비스 단위 및 스크립트 파일의 여러 부분에 오류가 발생합니다.
서비스로 상호 작용하는 데 필요한 프로그램을 실행하기 위해 시스템 전체 서비스(및 필요한 서비스)로 실행되는 전체 디자인은 다소 불안정해 보이지만 screen
실제로는 그렇지 않습니다.