sleep
포트 80에 대한 SSH 터널을 시작하고 PHPmyadmin을 설치한 다음 보안상의 이유로 2시간(시간 초과) 후에 자동으로 제거하는 다음 스크립트가 있습니다 .
제가 자동화하고 싶은 것은 터널을 떠나는 것입니다. 이제 터널을 나가려면 2시간 후에 Ctrl+C를 눌러야 하는데 수동으로 하고 싶지는 않습니다. 저도 자동으로 됐으면 좋겠어요. 터널을 자동으로 종료하려면 다음 스크립트에 무엇을 추가할 수 있나요?
bash /dev/fd/4 4<< 'EOF0'
#!/bin/bash -x
# 1. Preface:
# Make sure you closed port 3306 for good. !!!!!!!!!
# Start an SSH tunnel:
ssh WORK-USER@SERVER-IP -L 80:localhost:80
# 2. Install commands:
sudo apt-get install phpmyadmin -y
sudo phpenmod mcrypt mbstring
cat << EOF1 >> /etc/apache2/apache2.conf
Include /etc/phpmyadmin/apache.conf
EOF1
sudo service apache2 restart
# 3. Delayed-uninstall commands:
sleep 2h
sudo phpdismod mcrypt mbstring
sudo apt-get purge phpmyadmin -y
sudo service apache2 restart
sed -i 's/Include \/etc\/phpmyadmin\/apache.conf/ /g' /etc/apache2/apache2.conf
# Sed: First forward slash == substitute. Last major three == diff, global, address.
EOF0
스크립트의 끝에 도달했습니다. 2시간이 지났지만 여전히 터널 모드에 있고 컴퓨터에서 떨어져 있다고 가정해 보겠습니다. 스크립트가 끝날 때 터널 모드가 자동으로 종료되도록 하려면 어떻게 해야 합니까?
답변1
상위 쉘을 종료(중지)하려면 간단히 kill -SIGHUP $PPID
.
답변2
프로세스를 종료하고, PID를 사용하여 스크립트에서 항목을 작성하고, 단 2센트로 런타임 + 2시간을 수행하는 크론 작업을 권장합니다!