В течение многих лет, когда я работал над SSH-соединением, я запускал sudo vi ... для редактирования файла конфигурации. Если мне нужно что-то сделать в командной строке, я нажму Ctrl+Z, чтобы приостановить редактор, сделаю что-то, а затем fg чтобы вернуться к нему.
Но это больше не работает, как ожидалось (начиная с Ubuntu 14.04, насколько я могу судить). Редактор просто приостанавливается, но в первый раз, когда я пытаюсь его возобновить, все происходит так, как будто ничего не происходит (или, возможно, он возобновляется на мгновение, но затем снова приостанавливается). Если я попробую fg второй раз, редактор возобновит работу, но любые нажатия клавиш просто отобразятся на консоли. Но нажатие Ctrl+Z на этом этапе приостанавливает его и возвращает меня в оболочку.
Я не могу понять, как вернуть контроль над редактором. Я обычно просто sudo kill по идентификатору процесса (kill %1 возвращает "операция не разрешена", как я и ожидал, так как редактор работает от имени пользователя root).
Пожалуйста, не предлагайте использовать screen и / или отдельные терминалы, так как я уже делаю это. Я хотел бы знать, есть ли решение этой конкретной проблемы, так как нажатие Ctrl+Z - настолько укоренившаяся привычка, что я продолжаю делать это, не думая об этом. Ubuntu недавно изменила какую-то модель безопасности?
Обновить
Я до сих пор не понял эту проблему, но думаю, что это как-то связано с приостановкой вложенных процессов. Я не уверен, относится ли это к sudo. Я не был в состоянии воспроизвести это надежно, но это последовательность, которая вызывает это чаще всего:
sudo vifilename- Ctrl+ Z, чтобы приостановить vi
vianother-filename- Ctrl+ Z
fg 1чтобы попытаться возобновить работу vi от имени пользователя root. На этом этапе оболочка просто скажет[1]+ Stopped sudo vi filename. Попыткаfg 1снова появится для возобновления vi, но любые нажатия клавиш будут просто отображаться на консоли.
Кажется, что происходит, когда я приостанавливаю sudo vi , процессы sudo и vi останавливаются. Когда я fg в первый раз, только sudo возобновляется. Когда я fg второй раз, sudo останавливается, но vi возобновляется. В обычных условиях оба процесса должны быть возобновлены.
