Иногда я случайно/инстинктивно дублирую tabкаталог, который, вероятно, не должен был быть. В текущем случае, причина, по которой я это пишу, это старый, очень полный диск cifs.
Конечно, это приводит к тому, что управляющий терминал зависает в ожидании листинга каталога, Ctrl+ Cничего не делает, так как отправляет прерывание неправильному процессу (я предполагаю, что листинг был порожден в подоболочке).
Есть ли способ уничтожить этот листинг? Это что-то, что видно в списке процессов, или мне просто нужно ждать, пока листинг не пройдет (кажется, тайм-аута нет).
Это в Bash на Ubuntu 16.04.
Не дубликат "как отключить". Я не хочу отключать функцию, я хочу знать, как остановить ее, если она была случайно запущена в листинге каталога, который займет очень много времени.
решение1
Ctrl+ Cничего не делает, так как отправляет прерывание неправильному процессу (я предполагаю, что листинг был создан в подпрограмме).
Он отправляет прерывание правильному процессу, но процесс находится в состояниинепрерывный сон.
Непрерываемое состояние сна — это состояние сна, которое не будет обрабатывать сигнал немедленно. Оно проснется только в результате того, что ожидаемый ресурс станет доступным или после того, как во время этого ожидания произойдет тайм-аут (если указано при переводе в режим сна). Оно в основном используется драйверами устройств, ожидающими дискового или сетевого ввода-вывода (ввода/вывода). Когда процесс находится в состоянии непрерывного сна, сигналы, накопленные во время сна, будут замечены, когда процесс вернется из системного вызова или ловушки.
В Unix-подобных системах команда
ps -l
использует кодD
для непрерывного спящего состояния процесса. Такие процессы не могут быть убиты даже с помощьюSIGKILL
и единственный нехитрый способ избавиться от них — перезагрузить систему.
Так
Есть ли способ удалить этот листинг?
Перезагрузить.
Видно ли это в списке процессов?
Да. Процесс в D
государстве.
мне просто нужно дождаться, пока листинг будет готов?
Да. Или перезагрузитесь.
Связанный:А что если kill -9
не сработает?