여기에서 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=failed
mystartup.service가 나열되지 않고 다음과 service mystartup.service status
같이 표시됩니다.Unit mystartup.service.service could not be found.