그래서 서버가 있고 sudo에 액세스하여 한 가지 작업만 수행할 수 있습니다. 즉, 화이트리스트 스크립트를 실행합니다(이를 대상 스크립트라고 부르겠습니다). sudo나 다른 것에 대한 액세스 권한이 없습니다. 문제는 이 스크립트가 무작위로 중지되고 누군가가 계속 다시 시작해야 한다는 점입니다. 이는 성가신 일입니다. 나는 이것을 자동화하기 위해 아래 스크립트(유모 스크립트라고 부르겠습니다)를 만들었습니다. 즉, 스크립트의 병렬 인스턴스 2개를 동시에 실행하고 중지되면 최대 5번까지 다시 시작합니다.
지금은 대상 스크립트를 중지할 방법을 찾을 수 없다는 점을 제외하면 모두 괜찮습니다. 터미널에서 직접 실행할 때는 Ctrl+C를 눌러 종료할 수 있습니다. 그러나 이제는 유모 스크립트에 의해 시작되었으며 이를 종료하는 방법을 모르겠습니다. 예를 들어, 실행 후 5초 후에 대상 스크립트의 두 인스턴스를 모두 종료하는 다음 스크립트의 맨 아래에 뭔가를 넣고 싶다고 가정해 보겠습니다.
kill
다양한 명령을 시도했지만 pkill
sudo를 실행하지 않고 sudo kill
프로세스를 종료할 수 있는 방법은 없는 것 같습니다 pkill
. 해결 방법으로 수동으로 Ctrl+C를 누를 수 있도록 대상 스크립트를 전경화하는 다양한 방법을 시도했지만 fg
bash 스크립트에서 시작된 프로세스를 전경화하는 방법을 찾을 수 없는 것 같습니다.
유모 스크립트를 수정할 수 있지만 대상 스크립트는 수정할 수 없습니다. 대상 스크립트를 죽일 수 있는 방법이 있나요?
보모 스크립트:
echo "ENTER YOUR PASSWORD:"
read -s PASSWORD
COUNTOUTER=1
while [ $COUNTOUTER -le 2 ]; #Create 2 parallel processes
do
(
COUNTINNER=1
while [ $COUNTINNER -le 5 ]; #Restart the target script up to 5 times
do
echo $PASSWORD | exec sudo -S ./test.sh > process1.log &
wait $!
((COUNTINNER++))
done
)&
((COUNTOUTER++))
done
sleep 5
# I want to do something here to kill the target processes