Mam problem, który jest odtwarzalny na maszynach wirtualnych z systemem Linux Ubuntu (14.04 LTS) utworzonych na platformie Azure.
Po zainstalowaniu systemd
pakietu przez skrypt system nieskończenie odmawia nowych połączeń ssh.
System się uruchamia.
Połączenie zamknięte przez xxx.xxx.xxx.xxx
Aktywne połączenie ssh jest jednak utrzymywane. W /etc/nologin
systemie nie ma pliku.
Jedyną dostępną opcją jest twardy reset, który rozwiązuje problem. Ale jak tego uniknąć?
Oto skrypt, którego używam:
#!/bin/bash
# Script input arguments
user=$1
server=$2
# Tell the shell to quote your variables to be eval-safe!
printf -v user_q '%q' "$user"
printf -v server_q '%q' "$server"
#
SECONDS=0
address="$user_q"@"$server_q"
function run {
ssh "$address" /bin/bash "$@"
}
run << SSHCONNECTION
# Enable autostartup
# systemd is required for the autostartup
sudo dpkg-query -W -f='${Status}' systemd 2>/dev/null | grep -c "ok installed" > /home/$user_q/systemd-check.txt
systemdInstalled=\$(cat /home/$user_q/systemd-check.txt)
if [[ \$systemdInstalled -eq 0 ]]; then
echo "Systemd is not currently installed. Installing..."
# install systemd
sudo apt-get update
sudo apt-get -y install systemd
else
echo "systemd is already installed. Skipping this step."
fi
SSHCONNECTION