Почему не работает команда jobs browse

Команда `jobs` не показывает никаких фоновых процессов

Когда я был в офисе, используя свой рабочий стол, я запускал скрипт run.sh в фоновом режиме 4 раза.

Затем я пришел домой и открыл терминал на своем ноутбуке, ssh на рабочий стол в моем офисе. Когда побежал ps -u jack , я увидел запущенные процессы:

Но когда я набрал jobs , я ничего не получил. Почему я мог видеть эти четыре запущенных фоновых процесса?

Кстати, как я могу вернуть их на свой текущий терминал, чтобы я мог убить одного из них, скажем, run.sh parameter4 & ?

2 ответа 2

Это связано с тем, что jobs отображает фоновые команды, запущенные из одной оболочки. Процессы оболочки, запущенные под вашим настольным терминалом и под ssh-терминалом, отличаются.

Чтобы иметь возможность управлять своими процессами как заданиями из разных терминалов, вы можете использовать screen или tmux которые в основном являются менеджерами виртуальных терминалов и могут повторно подключать их к любому количеству других терминалов.

Например, если вы только запускаете screen , он открывает оболочку по умолчанию и вы работаете с ней так же, как и с любой другой оболочкой. Затем, когда вы вернетесь домой и подключитесь по ssh к своей офисной машине, вы можете запустить screen -d -r чтобы отсоединить виртуальный терминал от настольного офисного терминала и подключить его к терминалу ssh, чтобы возобновить работу. Вы можете отсоединить виртуальный терминал от самого screen , нажав Ctrl-A, d.

Читайте также:  Настроить гитару первая струна нота

Исходя из постановки задачи вопроса, ИМХО я не вижу никаких причин для использования background или foreground . Все, что вам нужно, — это найти процесс, работающий в фоновом режиме, чтобы вы могли его убить.

Запустите ps -ef | grep parameter3 чтобы найти процессы с parameter3 в имени процесса. Вы можете адаптировать grep для уникальной идентификации процесса, если у вас нет двух процессов с одинаковым именем процесса.

Как только он у вас есть, просто kill -9 PID и этот процесс будет убит. Так что нет необходимости выдвигать этот процесс на первый план, чтобы убить его.

Источник

Проблема с плагином Jobs! Уже не знаю куда обратиться!

#1 Speak

  • Пользователь
  • 73 сообщений
  • #2 compromiss

  • Пользователь
  • 1 473 сообщений
  • #3 Speak

  • Пользователь
  • 73 сообщений
  • Сообщение отредактировал Speak: 22 Апрель 2013 — 20:19

    #4 temoon

  • Пользователь
  • 874 сообщений
  • #5 deadanykey

  • Пользователь
  • 3 408 сообщений
  • Проверьте конфиг «plugins/Jobs/jobConfig.yml». В поставке плагина он пуст!
    Пример этого конфига: https://github.com/p. g/jobConfig.yml

    Теперь разрешения. Их можно вообще не вписывать, потому что по умолчанию и так работает.
    Или вот:

    — jobs.use
    — jobs.command.browse
    — jobs.command.stats
    — jobs.command.join
    — jobs.command.leave
    — jobs.command.info
    — jobs.world.*
    — jobs.join.*

    Это для обычных игроков.

    Сообщение отредактировал deadanykey: 22 Апрель 2013 — 22:26

    #6 temoon

  • Пользователь
  • 874 сообщений
  • Проверьте конфиг «plugins/Jobs/jobConfig.yml». В поставке плагина он пуст!
    Пример этого конфига: https://github.com/p. g/jobConfig.yml

    Теперь разрешения. Их можно вообще не вписывать, потому что по умолчанию и так работает.
    Или вот:

    — jobs.use
    — jobs.command.browse
    — jobs.command.stats
    — jobs.command.join
    — jobs.command.leave
    — jobs.command.info
    — jobs.world.*
    — jobs.join.*

    Это для обычных игроков.

    #7 deadanykey

  • Пользователь
  • 3 408 сообщений
  • Дак он же вроде воссоздает его при загрузке JAR

    #8 Speak

  • Пользователь
  • 73 сообщений
  • Проверьте конфиг «plugins/Jobs/jobConfig.yml». В поставке плагина он пуст!
    Пример этого конфига: https://github.com/p. g/jobConfig.yml

    #9 deadanykey

  • Пользователь
  • 3 408 сообщений
  • deadanykey всё что мне нужно сделать это просто скопировать с https://github.com/p. g/jobConfig.yml всё в мой конфиг, я правильно понимаю вас?

    #10 Mister_E

  • Пользователь
  • 998 сообщений
  • Источник

    Как использовать команду Jobs в Linux

    Главное меню » Linux » Как использовать команду Jobs в Linux

    Задания имеют три возможных состояния в Linux: передний план, фон и остановлено.

    – А что это значит? Чуть позже мы объясним подробнее. Сначала давайте рассмотрим некоторые инструменты, встроенные в команду Jobs.

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

    Команда Описание
    jobs Список заданий в текущей оболочке
    bg %n Отправить процесс в фоновом режиме
    fg %n Вывести процесс на передний план

    В таблице n представляет собой номер соответствующего идентификатора задания.

    Понимание управления заданиями в Linux

    А что вообще такое jobs? Задания, процессы и задачи-это слова, которые часто используются взаимозаменяемо.

    На самом деле есть некоторые небольшие различия, которые важны для ясности.

    Разница может быть сведена к тому, какая сущность обрабатывает задачи. Пользователи владеют заданиями, а ядро-процессами.

    В Linux задание может быть одним процессом или иметь несколько дочерних или подпроцессов.

    Примером этого может быть задание, которое содержит несколько переданных команд, таких как эта:

    В персональных вычислениях операционная система обрабатывает большинство процессов автоматически. Это обычно оптимизируется под потребности системы или приоритет, придаваемый определенной задаче. Эти процессы завершаются ядром и получают идентификатор процесса (PID).

    Как управлять заданиями в Linux

    Когда вы открываете новую оболочку, у вас есть возможность создавать свои собственные рабочие места. Фактически, это то, что происходит, когда вы вводите любую команду (или серию команд) в терминал.

    На уровне пользователя-из оболочки можно вручную отправлять задания для работы в фоновом режиме, выводить их на передний план или приостанавливать (с помощью ctrl+z).

    Итак, давайте рассмотрим на практике то, что вы узнали до сих пор, на нескольких примерах.

    Пример 1: отправка заданий в фоновом режиме

    Отправить задание на работу в фоновом режиме очень просто. Вам просто нужно добавить свою команду с символом & (амперсанд).

    Вы можете видеть, что эта команда возвращает номер задания в скобках. Следующий номер-это идентификатор процесса, используемый ядром.

    Пример 2: Просмотр Заданий

    Если вы попытаетесь ввести команду jobs, вы можете быть смущены, что ничего не произошло. Это происходит потому, что в оболочке не было активных заданий. Теперь, когда у вас есть запущенное задание, вы можете запустить команду задания успешно.

    Номер PID здесь не указан, но вам он не нужен. Вы управляете заданиями с помощью идентификатора задания пользователя/оболочки.

    Пример 3: выведите задания на передний план

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

    Если вы следили за этим, это должно привести вас в nano с вашим файлом под названием Linux AndreyEx.

    Пример 4: остановите задание с помощью ctrl+z

    Вы можете остановить открытые задания с помощью ctrl+z.

    Вы можете открыть верхнюю часть, используйте ctrl+z, чтобы приостановить его, просмотреть его в списке заданий, а затем вернуть его на передний план перед закрытием.

    Пример 5: Запуск фоновых заданий с помощью bg

    Хотя вы можете отправлять задания в фоновом режиме с символом &, это всегда хорошо, чтобы иметь альтернативу. На экране вы видели, как я остановил задание с помощью ctrl+z. я вернул задание в оболочку и на передний план с помощью команды fg %n. Вы можете сделать то же самое, используя bg.

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

    Итак, давайте использовать gedit. Мы собираемся сделать следующее:

    • Запустить Gedit
    • Вернитесь в оболочку и нажмите Ctrl+z
    • Отправить его в фоновом режиме для запуска с помощью bg
    • Проверьте список моих заданий, чтобы убедиться, что он запущен
    • Вернитесь на передний план и отправьте системное прерывание, используя Ctrl+c, чтобы завершить его

    Бонусный совет по окончанию заданий в Linux

    Многие из нас привыкли использовать ctrl+c для завершения заданий в оболочке. Есть еще один способ сделать это, что включение вашего нового знания контроля работы.

    Правильно, команда kill может быть использована вместе с идентификатором задания для завершения задания также.

    Вывод

    Изучение командной строки Linux приближает нас к внутренней работе нашей любимой операционной системы. Контроль учебных заданий дает нам возможность обрабатывать сразу несколько заданий.

    Мы надеемся, что вы нашли что-то новое для изучения с этой статьей. Если вам понравилось, пожалуйста, сообщите нам об этом в разделе комментариев ниже или используйте ссылки, чтобы поделиться в социальных сетях.

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Источник

    Оцените статью