Para finalizar (desligar) o shell pai, você poderia simplesmente kill -SIGHUP $PPID
.
Eu tenho este seguinte script que inicia um túnel SSH para a porta 80, instala o PHPmyadmin e, em seguida, exclui automaticamente após 2 horas ( sleep
timeout), por motivos de segurança.
O que quero automatizar é sair do túnel. Agora que para sair do túnel, eu deveria executar CTRL + C após 2 horas, mas não quero fazer isso manualmente. Eu quero que seja automático também. O que eu poderia adicionar ao seguinte script para automatizar a saída do túnel?
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
Chegamos ao final do script. Vamos supor que 2 horas se passaram, mas ainda estou no modo de tunelamento e saí do computador; Como eu poderia garantir que eu mudei o modo de tunelamento automaticamente quando o script terminou?
Eu recomendaria uma tarefa cron que eliminasse o processo, escrevesse a entrada do seu script com PID e o tempo + 2hs para executar Apenas meus 2 centavos!
Tags shell-script