Azureで作成されたLinux Ubuntu VM(14.04 LTS)で再現可能な問題が発生しました。
systemd
スクリプトを介してパッケージをインストールした後、システムは新しいSSH接続を無期限に拒否します。
システムが起動中です。
xxx.xxx.xxx.xxx によって接続が終了しました。
ただし、アクティブなSSH接続は変更されません。/etc/nologin
システムにファイルがありません。
私が見ることができる唯一のオプションは、問題を解決するためのハードリセットだけです。しかし、どのように避けることができますか?
これは私が使用するスクリプトです。
#!/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
ベストアンサー1
/etc/nologin
systemdをインストールした後も削除されないファイル(「システムが起動中です」という内容)があるようです。
[更新]あなたに影響を与えるのはUbuntuのBTSで報告されたバグ去る12月。これは、システムのインストールの終わりにファイルが削除されないためです/var/run/nologin
(=シンボリックリンクで/run/nologin
あるため)。/var/run
/run
/etc/nologin
標準の nologin ファイルです。/var/run/nologin
PAMモジュールで利用可能な代替ファイルですnologin
(man pam_nologin
)。
nologin
これらのファイルはrootユーザーの接続に影響を与えず、通常のユーザーのログインのみを防ぐことに注意してください。