почему задания не перечисляют команды из сценария

Вот проблема в Вашем понимании:

Мое понимание - то, что загрузчик GRUB2, смонтирован к начальной загрузке/.

GRUB не "смонтирован" на начальной загрузке. GRUB установлен на /boot, и загружается из кода в Главной загрузочной записи. Вот упрощенный обзор современного процесса начальной загрузки, принимая GNU/дистрибутив Linux с MBR/BIOS (не GPT/UEFI):

  1. Загрузки BIOS.
  2. BIOS загружает маленькую часть кода, который находится в Главной загрузочной записи.
  3. GRUB не помещается в 440 байтов, размер Главной загрузочной записи. Поэтому код, который загружается на самом деле просто, анализирует таблицу разделов, находит /boot раздел (то, которому я верю, определяется, когда Вы устанавливаете GRUB на Главной загрузочной записи), и анализирует информацию о файловой системе. Это затем загружает Этап 2 GRUB. (Это - то, где упрощение входит.)
  4. Этап 2 GRUB загружает все, что он нуждается, включая конфигурацию GRUB, затем представляет меню (или не, в зависимости от пользовательской конфигурации).
  5. Последовательность начальной загрузки выбрана. Это могло быть тайм-аутом пользователем, выбирающим запись меню, или путем начальной загрузки списка команд.
  6. Последовательность начальной загрузки начинает выполняться. Это может сделать много вещей - например, загрузив ядро, chainloading к другому загрузчику - но давайте предположим, что последовательностью начальной загрузки является стандартный GNU/Linux.
  7. GRUB загружает ядро Linux.
  8. GRUB загружает начальный электронный диск.
  9. Начальный электронный диск монтируется / под /new_root (возможно криптографически разблокирование его), запускает udev, запускает резюме от подкачки, и т.д.
  10. Начальный электронный диск использует pivot_root утилита для установки /new_root как реальное /.
  11. init запускается. Разделы смонтированы, демоны начинают, и начальные загрузки системы.

Заметьте, как ядро только загружается на шаге 7. Из-за этого нет никакого понятия монтирования до шага 7. Это то, почему /boot должен быть смонтирован снова на шаге 9, даже при том, что GRUB уже использовал его.

Это может также быть полезным для рассмотрения раздела GRUB 2 страницы Wikipedia на GRUB.

2
09.01.2015, 12:17
1 ответ

Джобс работает только для создания раковины, которая создала рабочие места. Работа № Используйте цифры, а не PID. Как только оболочка проводится внутри скрипта (другой новый процесс), старая оболочка, которая запустила скрипт, задания (выданные в старой оболочке), больше не может ссылаться на задание № 1 в новой оболочке.

Почему? Поскольку текущая оболочка может иметь свою работу № 1. Unix / Linux поддерживает то, что известно как группа процессов или сеанса. Групповой лидер сессии является процесс, который владеет TTY и взаимодействует с ним через клавиатуру. Посмотрите описание функции SetSid () в вашем руководстве. Если процесс был запущен и все еще работает как ребенок под старой родительской оболочкой - лидер, то команда Jobs будет работать. В противном случае нет.

4
27.01.2020, 22:00

Теги

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