Насколько я понимаю: первый выполняемый процесс - это процесс init (с другими современными именами) с pid 1. Позже в соответствии с файлом /etc/inittab и всеми файлами /rdc. скрипты папок, остальные программы выполняются на .

1. Процесс оболочки (в моем случае оболочка bash с запросом на вход) запускается только после всех процессов, упомянутых выше. Итак, если моя оболочка еще не открылась, как именно выполняются все эти сценарии? для запуска скрипта нам нужна оболочка, которая его запустит. Правильно?

  1. где я могу найти сценарий, в котором говорится, в какой именно момент запускается моя оболочка bash?

  2. до того, как моя оболочка bash запустится, могу ли я отправить сигналы (Ctrl z/x/c) одному из процессов, которые запускаются при запуске?

  3. У меня есть процесс со «scanf». Когда я нажимаю на клавиатуру, процесс получает мой ввод. Учитывая, что процесс запускался при запуске, как я упоминал выше, до того, как это сделала моя оболочка. Как он получил мой вклад? моя оболочка открывается только после завершения этого процесса.

0
hutcruchi 31 Окт 2019 в 20:01
Это больше относится к теме Unix&Linux. Я думаю, вы действительно переоцениваете роль и важность вашей интерактивной оболочки входа в систему. 1. Он не участвует в запуске сценариев (они запускаются неинтерактивными экземплярами оболочки, независимо от того, во время загрузки они или нет), 2. Он не запускается при загрузке (только при входе в систему), 3. Он не участвует в этих сигналах ( это терминал), 4. Не участвует в вводе программы (программа читает прямо из терминала)
 – 
that other guy
1 Ноя 2019 в 00:11

1 ответ

  1. Программа-оболочка может работать неинтерактивно как интерпретатор сценариев, в этом случае она может запускаться до входа в систему.

  2. Процесс оболочки запускается программой входа в систему после ввода имени пользователя и пароля.

  3. Сигналы передаются через управляющий терминал процесса, пока у программы есть управляющий терминал, она сможет получать сигналы от своего управляющего терминала.

  4. scanf() считывается со стандартного ввода процесса, который также связан с управляющим терминалом. Так же.

0
ZhouZhuo 1 Ноя 2019 в 18:03
Итак, если я правильно понял: 1. Сценарии во время загрузки запускаются экземпляром оболочки, который я не могу видеть/с которым я не могу взаимодействовать. 2. Процесс оболочки (тот, с которым я могу взаимодействовать) запускается процессом входа в систему, который запускается процессом инициализации 3. за отправку сигналов отвечает терминал, а не оболочка? @тот другой парень
 – 
hutcruchi
2 Ноя 2019 в 07:02