Может ли Ubuntu Linux с systemd + без входа пользователя + индивидуальные приложения работать без оболочек?

grep -of file1 file2|xargs -I {} grep -o "{}" file3

Это начинается с того, что вводится файл file1 и построчно вводится в file2, возвращая точный совпадающий текст, если таковой имеется. Затем результаты, если таковые имеются, передаются в файл3 строка за строкой, снова возвращая только согласованный текст.

2
22.12.2017, 19:03
1 ответ

Это довольно сложно рассмотреть. Для начала:

  • Стандарт POSIX, также известный как Единая спецификация Unix, гарантирует, что совместимая система будет иметь программу, вызываемую как sh, которая реализует определенный язык оболочки. В любой данной реальной системе shфактически будет одной из реальных оболочек, таких как оболочка Z, оболочка Almquist, оболочка Korn, оболочка Bourne Again и так далее; обычно распознает, что он был вызван по имени shи работает в режиме POSIX .
  • Более десяти лет назад сообщества Debian и Ubuntu усердно работали над устранением зависимостей различных частей операционной системы от расширений, предоставляемых оболочкой Bourne Again даже в ее режиме POSIX. Сценарии, которые указывали #!/bin/shв качестве своего интерпретатора, должны были не полагаться на так -, называемые башизмами , и, наоборот, сценарии, которые действительно полагались на башизмы, должны были явно указывать оболочку Bourne Again в качестве своего интерпретатора, а не sh.
  • Еще в 2011 году люди из systemd поставили перед собой цель отказаться от использования сценариев оболочки как части управления системой и службами.

Удалять скорлупу довольно просто. Один удаляет такие пакеты, как ash, bash, posh, mksh, pdksh, tcsh, dashи т. д.; с помощью инструмента управления пакетами, такого как aptitude. Сложность заключается в том, что два из них помечены как «необходимые» — dashи bash— а это означает, что другие пакеты могут предполагать их присутствие без явного объявления зависимости от них, и удалить -нетривиально. их, так как менеджер пакетов намеренно потребует от вас дополнительных действий, чтобы подтвердить, что вы действительно хотите их удалить.

Беда приходит с последствиями этого.

  • Благодаря работе разработчиков Debian и Ubuntu,теперь есть скрипты, которые явно объявляют #!/bin/bashинтерпретаторами скриптов. Такие скрипты не будут работать, если удалить оболочку Bourne Again, даже если останется оболочка Debian Almquist.
  • Сценарии, основанные на POSIX-совместимой оболочке, перестанут работать, если удалить оболочку Debian Almquist.
  • Скомпилированные программы, использующие оболочку, совместимую с POSIX, перестанут работать, если удалить оболочку Debian Almquist. Такие программы делают такие вещи, как вызов библиотечной функции system()или явно execvpe()утилиты sh.

В результате:

  • Приложения могут не работать. Да, они написаны на скомпилированном языке и не являются сценариями оболочки. Это не мешает разработчикам приложений быстро разветвлять и выполнять странные процессы оболочки тут и там.
  • Системные программы могут не работать. По той же причине.
  • Системные программы могут не работать по той причине, что они на самом деле являются сценариями оболочки.
    • Устранение сценариев оболочки из процессов запуска и завершения работы далеко не полное. Многие сервисы по-прежнему контролируются сценариями ван Смуренбурга rc, которые не смогут shинтерпретировать их. Запустите
      systemctl list-units
      Все службы, которые вы видите с «LSB :» или «SYSV :» в начале их описания, нуждаются в интерпретаторе оболочки для работы. Точно так же такие программы, как rabbitmq-serverили mysqld_safe, которые иногда (ab )используются в качестве служб, на самом деле являются сценариями оболочки.
    • Многие вспомогательные и служебные программы представляют собой сценарии оболочки. Debian /lib/systemd/systemd-sysv-install— это только один пример. Другие включают /usr/sbin/service, /usr/sbin/invoke-rc.dи даже /bin/fgrep.
  • Аварийный и аварийный режимы начальной загрузки не работают. И rescue.service, иemergency.service(в версии systemd в Ubuntu 16 )используют /bin/sh.

Дополнительная литература

2
27.01.2020, 22:09

Теги

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