Назад | Перейти на главную страницу

завершение bash, вызывающее перезагрузку в Ubuntu 14.04

ОБНОВИТЬ

set -x, кажется, дает некоторую полезную отладочную информацию. systemctl очень подозрительно как бегущий systemctl list-units --full --all сам по себе вызывает такую ​​же перезагрузку. Думаю, я буду в этом разбираться.

set -x
service [TAB]
    ...
    etc/init.d/unattended-upgrades /etc/init.d/unscd /etc/init.d/urandom
    + shopt -u nullglob
    + COMPREPLY+=($( systemctl list-units --full --all 2>/dev/null |                   awk '$1 ~ /\.service$/ { sub("\\.service$", "", $1); print $1 }' ))
    ++ systemctl list-units --full --all
    ++ awk '$1 ~ /\.service$/ { sub("\\.service$", "", $1); print $1 }'

    Broadcast message from root@server
        (/dev/pts/1) at 12:02 ...

    The system is going down for reboot NOW!
    + COMPREPLY=($( compgen -W '${COMPREPLY[@]#${sysvdirs[0]}/}' -- "$cur" ))
    ++ compgen -W '${COMPREPLY[@]#${sysvdirs[0]}/}' -- ''
    + [[ -e /etc/mandrake-release ]]
    Connection to server.mydomain.net closed by remote host.
    Connection to server.mydomain.net closed.

У меня есть виртуальная машина под управлением Ubuntu 14.04 с последними исправлениями. когда я печатаю service+ [TAB] машина сразу перезагружается. Другое завершение bash, похоже, работает нормально, например: ls [TAB]. Только завершение для service кажется проблематичным. Системные журналы пока ничего очевидного не выявили. Если я удалю bash-completion пакет, проблема уходит. Переустановив его, проблема вернулась. Есть идеи, где искать устранение неполадок?

Как оказывается. Админ заменил /bin/systemctl двоичный файл со сценарием оболочки, который содержал единственную команду reboot. Понятия не имею, зачем кому-то это делать, но поскольку два человека уже проголосовали за этот вопрос, я подумал, что отвечу. Я даже не думаю, что эта команда является частью 14.04 (проверил несколько других машин - ее там нет), так что это еще более странно.

Следует отметить, что set -x помог мне найти проблему.