Что я должен сделать, когда я добираюсь 'Существуют остановленные задания' ошибка?

Я сталкиваюсь с этим типом ситуации много раз.

Например, каждый раз, когда я пытаюсь открыть некоторый файл в emacs с sudo использование прав:

sudo emacs tet.c &

Вместо того, чтобы просить у меня пароль только запускается Ubuntu emacs процесс ни с кем emacs окно или любой вывод на терминале (за исключением pid) видят изображение (если я не буду использовать '& то ', затем это попросит у меня пароля):

enter image description here

У меня есть два вопроса, связанные с этим:

  1. Что я должен сделать, когда я получаю ошибку что 'Существуют остановленные задания'? Как я определяю все такие остановленные задания и уничтожаю их? После того как я очищаю терминал, у меня не будет pids этих остановленных процессов.

  2. Почему Ubuntu/emacs ведет себя как это? Почему это не просит у меня пароль?

65
задан 9 March 2014 в 11:55

3 ответа

There are stopped jobs сообщение должно далеко, далеко быть ошибкой. Это - просто уведомление, говоря Вам, что Вы пытаетесь выйти от оболочки, но у Вас есть одно или несколько приостановленных заданий/программ (в Вашем случае emacs который Вы загнали в фоновом использовании & в конце Вашей команды). Система не позволяет Вам, чтобы выйти от оболочки и уничтожить задания, если Вы не значите для. Можно сделать несколько вещей в ответ на это сообщение:

  • использовать jobs команда, чтобы сказать Вам, какое задание (задания) Вы приостановили
  • можно принять решение добавить задание (задания) в приоритетном использовании fg команда
  • если Вы не заботитесь, завершится ли задание (задания), можно просто ввести exit снова; ввод exit во второй раз с или без вмешательства jobs команда приведет к завершению всех приостановленных заданий.

Для ответа на второй вопрос я скажу Вам что не Ubuntu или emacs, ведущий себя как это. Это - нормальное поведение при помещении приложения для выполнения в фоне. В этом случае sudo просит пароль, но спрашивает в фоне, таким образом, Вы не видите этот факт. Для наблюдения его необходимо возвратить задание в приоритетном использовании fg команда:

radu@Radu: ~ $ sudo emacs tet.c &
[1] 7732
radu@Radu: ~ $ # now sudo emacs run in background so you can't see nothing about what's happening
radu@Radu: ~ $ fg
[sudo] password for radu:

После этого можно ввести Ctrl+Z для помещения снова задания в фон, если Вы хотите. Затем можно выполнить снова 'fg' команду для возвращения задания на переднем плане и так далее.

80
ответ дан 16 November 2019 в 10:07

Вы получили сообщение, потому что система предупреждает Вас об активных заданиях, связанных с Вашей текущей оболочкой.

Можно перечислить, они выполнять/останавливать задания путем выполнения: jobs,

Затем можно выполнить одно из следующих действий:

  • перемещение последнее задание к переднему плану: fg (противоположность bg для фона),
  • выполненный disown удалить эти задания из Вашей текущей оболочки, не уничтожая их,
  • вызовите выход из системы путем уничтожения этих задач путем нажатия Ctrl+D дважды, то же как ввод exit/logout дважды,
  • уничтожьте эти задания вручную путем выполнения: kill $(jobs -p) (добавьте -9 для силы)
  • если Вы отрицаете их, и Вы хотите все еще уничтожить все остановленные процессы, попробовать:

    kill $(ps wuax | awk 'NR>1 && $8 ~ "T" {print $2}')


Отвечать на вопрос о sudo, это не попросит у Вас пароля, поскольку это требует, чтобы иметь активный терминал для получения пароля из стандартного входа, и путем выполнения его фон, оболочка не ожидает команды для окончания, таким образом, у Вас нет возможности взаимодействовать с командой.

В этом случае у Вас есть 3 возможности:

  • команда выполнения, не входя в фон (&),
  • считайте пароль из стандартного входа вместо оконечного устройства sudo -S например.

    echo mypass | sudo emacs tet.c
    
  • настройте sudo для не просьбы пароль: visudo команда и редактирование sudoers файл. См.: Включить NOPASSWD для пользователя

20
ответ дан 16 November 2019 в 10:07

Когда Вы встречаетесь существуют остановленные задания ошибка:

  1. тип jobs-> Вы будете видеть задания с остановленным состоянием
  2. и затем тип exit-> можно выйти из терминала
6
ответ дан 16 November 2019 в 10:07

Другие вопросы по тегам:

Похожие вопросы: