Я часто сталкиваюсь с этим типом ситуации.
Например, когда я пытаюсь открыть какой-либо файл в emacs с правами sudo, используя:
sudo emacs tet.c &
Вместо того, чтобы просить меня пароль Ubuntu только начинает процесс emacs без какого-либо окна emacs или любого вывода на терминале (кроме pid), см. изображение (если я не использую '& amp;', тогда он попросит меня пароль):
У меня есть два вопроса, связанных с этим:
Что мне делать, когда я получаю сообщение об ошибке «Есть остановленные задания»? Как определить все такие остановленные задания и убить их? Как только я очищу терминал, у меня не будет pids этих остановленных процессов. Почему Ubuntu / emacs ведут себя так? Почему он не спрашивает меня пароль?Вы получили сообщение, потому что система предупреждает вас об активных заданиях, связанных с вашей текущей оболочкой.
Вы можете перечислить эти запущенные / остановленные задания, выполнив: jobs,
Затем вы можете выполнить одно из следующих действий:
перенести последнее задание на передний план: fg, запустить disown, чтобы удалить эти задания из текущей оболочки без их уничтожения, принудительно выйти из системы, убив эти задачи дважды нажав Ctrl + D, так же, как дважды набирать exit / logout, убить эти задания вручную, запустив: kill $(jobs -p) (добавьте -9 для силы), если вы отмените их, и вы хотите все же убить всех остановленных процессов, попробуйте: kill $(ps wuax | awk 'NR>1 && $8 ~ "T" {print $2}')Чтобы ответить на вопрос о sudo, он не будет запрашивать у вас пароль, так как для этого требуется наличие активного терминала для получения пароль от стандартного ввода и запустив его фон, оболочка не ждет завершения команды, поэтому у вас нет возможности взаимодействовать с этой командой.
В этом случае вы '3 возможности:
перенести последнюю работу на передний план с помощью: fg, читать пароль со стандартного ввода вместо терминального устройства с помощью sudo -S, например.echo mypass | sudo emacs tet.c
запустите disown, чтобы удалить эти задания из текущей оболочки без их уничтожения, Когда вы сталкиваетесь с ошибкой остановленных заданий:
type jobs -> вы увидите задания с остановленным статусом, а затем введите exit -> вы можете выйти из терминала