TAB нажмите для автозаполнения не работает для некоторых имен услуг
Я могу выполнить следующую команду на моем терминале Ubuntu 14.04.3 без проблем:
sudo service network-manager restart
[sudo] password for username:
network-manager stop/waiting
network-manager start/running, process 5204
Если я наберу sudo service network
и затем нажмите Tab, он автоматически завершен, чтобы sudo service networking
,
Если я наберу sudo service network-ma
и они нажимают Tab, автозаполнение не происходит.
У меня вопрос, есть ли сервис с именем network-manager
это может быть перезапущено service
команда почему его имя не заполняется автоматически? и как это решить?
Обновить:
ls -l /etc/init.d/network*
-rwxr-xr-x 1 root root 4479 Apr 28 2014 /etc/init.d/networking
1 ответ
Завершение вкладки для service
смотрит файлы в /etc/init.d
, Так как нет network-manager
файл там, завершение вкладки не удается. Лучший вопрос, почему service network-manager
работает на всех.
Согласно service
справочная страница:
The SCRIPT parameter specifies a System V init script, located in
/etc/init.d/SCRIPT, or the name of an upstart job in /etc/init.
Итак, поскольку есть /etc/init/network-manager.conf
файл, service
может запросить его, но нет автозаполнения, потому что нет сценария с таким именем в /etc/init.d
,
Простой обходной путь - создать пустой файл с именем network-manager
в /etc/init.d
:
sudo touch /etc/init.d/network-manager
Как только вы это сделаете, вы можете завершить имя, как и ожидалось. Я проверил это на виртуальной машине, и она, кажется, работает нормально, service network-manager start|stop|restart|status
Команды все работали и ничего не сломалось. Я предполагаю, что это означает, что пустой файл игнорируется и используется только для завершения, поэтому похоже, что это безопасно.