ОБНОВИТЬ
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
помог мне найти проблему.