스타트업은 정말 혼란스럽습니다. 일을 시작하는 다양한 방법이 곳곳의 다른 위치에서 일어나는 것 같습니다. 하지만 로드되는 순서를 정의하는 방법이 있나요?
특히... PMS가 시작되기 전에 서버의 VPN 연결이 설정된 경우 클라이언트가 PMS(Plex Media Server)를 검색할 수 없는 문제가 있습니다. 그것은 나를 미치게 만들었지만 PMS를 종료하고 VPN을 종료하고 PMS를 켠 다음 VPN을 켜면 문제를 해결할 수 있음을 발견했습니다.
시작 시 PMS가 자동으로 어떻게 자동 로드되는지는 정확히 모르겠지만 VPN은 /etc/network/if-up.d/slickvpn을 다음과 같이 편집하여 정의한 것입니다.
#! /bin/bash
REQUIRED_CONNECTION_NAME="Wired connection 1"
VPN_CONNECTION_NAME="myvpn"
activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
nmcli con up id "${VPN_CONNECTION_NAME}"
fi
이는 VPN 자동 연결에 대한 도움말을 찾을 때 어딘가(이 사이트에서 찾은 것 같습니다)에서 찾은 스크립트입니다.
그래서 /etc/network/if-up.d/ 스크립트는 PMS 서비스 이전에 시작되는 것 같습니다. 어떻게 뒤집을 수 있나요? 아니면 다른 해결책?
답변1
대신 신생 기업을 시도해 보는 것이 좋을 것 같습니다. ifupdown 스크립트에서 VPN 서버의 시작을 중지한 다음(파일을 다른 곳으로 이동) 일부 시작 작업을 수행할 수 있습니다.
/etc/init
PMS 시작 파일을 생성(또는 이미 있는 경우 수정 ) /etc/init
하고 입력합니다(**이미 있는 경우 파일 이름을 기록해 두십시오 .conf
).
# pms - Plex Media Server
description "Plex Media Server"
start on (local-filesystems and net-device-up IFACE!=lo)
## here you can define what interface you can wait, just change IFACE!=lo for IFACE=eth0, etc.
## This stops the job at shutdown
stop on runlevel [!2345]
script
exec /path/to/pms/server/binar
end script
이것은 매우 기본적인 시작 스크립트입니다. 주변에 있는 것들을 추가/수정해야 합니다. 이제 다른 스크립트는 다음과 같습니다.
파일 을 생성 /etc/init/vpn.conf
하고 다음 내용으로 채웁니다.
# vpn - Virtual Private Network server
description "Virtual Private Network server"
start on started plexmediaserver
## now, the VPN server will only start if PMS starts :D
## This stops the job at shutdown you can modify it and make it to stop before stoping PMS
stop on runlevel [!2345]
env REQUIRED_CONNECTION_NAME="Wired connection 1"
env VPN_CONNECTION_NAME="myvpn"
export REQUIRED_CONNECTION_NAME
export VPN_CONNECTION_NAME
script
exec /usr/bin/nmcli con up id "${VPN_CONNECTION_NAME}"
end script
완료.