Systemd에서 시작 스크립트를 실행할 수 없습니다.

Systemd에서 시작 스크립트를 실행할 수 없습니다.

여기에서 systemd에 대한 모든 질문을 살펴봤지만 답변을 찾을 수 없는 것 같습니다. 혹시라도 놓친 경우 사과드립니다.

시작 시 다음 스크립트를 실행하고 싶지만 시작되는 네트워크와 GUI에 의존하기 때문에 systemd가 완료된 후에 실행해야 하는 것 같습니다. 클릭을 허용하도록 마우스패드를 설정하고 VPN에 연결하는 connect.sh 스크립트를 실행하려고 합니다. 아래 스크립트는 수동으로 실행할 때 수행해야 하는 모든 작업을 수행하지만 시작 시 실행되지 않는 이유를 평생 알 수 없습니다.

시작.sh:

#! /bin/sh
# /root/Scripts/startup.sh

synclient tapbutton1=1 clickfinger2=3 tapbutton2=3
sleep 2
sh /root/Scripts/connect.sh
sleep 10

connect.sh의 내용:

#! /bin/sh
# /root/Scripts/connect.sh


echo "disabling wifi adapter..\n"
ifconfig wlan0 down
sleep 3
macchanger -r wlan0
echo "enabling wifi adapter..\n"
ifconfig wlan0 up
sleep 3
echo "connecting to VPN..\n"
nmcli con up id vpnconnection1
sleep 3
ifconfig
echo "finished\n"

/etc/systemd/system/mystartup.service:

[Unit]
After=network.target

[Service]
ExecStart=/root/Scripts/startup.sh

[Install]
WantedBy=default.target

실행 systemctl enable mystartup.service하고 다시 시작했지만 변경 사항이 아직 적용되지 않았기 때문에 스크립트가 아직 실행되지 않았습니다.

내가 뭘 잘못했나요?

편집: 스크립트 위치의 절대 경로를 반영하도록 스크립트를 업데이트했습니다. 실행 systemctl하고 다시 시작했지만 여전히 작동하지 않습니다.

더 명확하게 설명하기 위해 시작 시 이 두 스크립트를 실행하고 싶습니다. 서비스로 등록하는 것은 나에게는 이해가 되지 않지만, 내가 조사한 모든 것이 나를 여기로 이끌었습니다. 즉, systemctl --state=failedmystartup.service가 나열되지 않고 다음과 service mystartup.service status같이 표시됩니다.Unit mystartup.service.service could not be found.

답변1

이것은 실제로 시스템 서비스가 아닙니다 ...

마우스 패드 설정은 실행 중인 X에 따라 다르며 해당 세션 내에서 완료되어야 합니다.

이를 설정하는 올바른 방법은 X 구성의 일부로 구성하는 것입니다.

바라보다여기구성 방법.

VPN 연결과 관련하여 연결을 제어하고 네트워크가 가동되는 시기를 아는 NetworkManager에서 이를 구성해야 할 것입니다.

바라보다여기네트워크가 시작될 때 VPN을 시작하는 NetworkManager에 스케줄러 스크립트를 연결하는 방법에 대해 알아보세요.

관련 정보