systemd все еще знает о runlevels?

Давайте запустимся с некоторых полезных статей

Плюс тот Вы уже перечислили.

В основном то, что это говорит Вам, является этим:

  • Номер Maxmimum открытых дескрипторов файлов на систему: 7017952
  • ulimit-a: Максимальное количество дескрипторов файлов позволило быть открытым оболочкой и процессами, которые оно запускает
  • ulimit-Sn: То же как выше, но показывает только мягкий предел для максимального количества дескрипторов файлов
  • ulimit-Hn: Выставочный жесткий предел для сессии открывает дескрипторы файлов

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

Таким образом, я предложил бы смотреть на:

sysctl fs.file-nr

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

lsof -p  

где рассматриваемый процесс для определения, сколько файлов и сокетов, которые процесс имеет открытый и видит, поражаете ли Вы свой предел.

17
02.10.2014, 17:16
4 ответа

Системный уровень выпуска

внутри системногоD (газемон), руге выставлены как «цели». Концепция все еще там, но рабочий процесс для получения желаемого результата для вашего требования отличается.

Прилагается уточнить эту проблему.

Как изменить текущий undlevelfevel?

$ systemctl isolate runlevelX.target

Как изменить уровень запуска по умолчанию для следующего загрузки?

# Create a symlink
$ ln -sf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
  • LN -SF Цель Пункт назначения
  • -S создает символический Ссылка
  • -F Удаляет существующий файл назначения

или (как предложено @ @ @ @ ancentimane), просто используйте команду "Boded" Systemd :

systemctl set-default [target name].target

Как я могу определить текущий проговел?

$ systemctl list-units --type=target
14
27.01.2020, 19:46

Большое спасибо. Итак, если я правильно понял:

Например:

ls -ll /usr/lib/systemd/system/runlevel*.target

Выход:

/usr/lib/systemd/system/runlevel0.target -> poweroff.target
/usr/lib/systemd/system/runlevel1.target -> rescue.target
/usr/lib/systemd/system/runlevel2.target -> multi-user.target
/usr/lib/systemd/system/runlevel3.target -> multi-user.target
/usr/lib/systemd/system/runlevel4.target -> multi-user.target
/usr/lib/systemd/system/runlevel5.target -> graphical.target
/usr/lib/systemd/system/runlevel6.target -> reboot.target

Так как вы можете видеть, концепция возникновения существует, но это довольно устарела из-за того, что файлы RunLevel.target Не на самом деле «реальные» файлы, но мягкие ссылки на новые, современные, лучшие именованные файлы схемы, которые Systemd любит называть их «целями».

Итак, если вы хотели бы сделать что-то подобное Telinit 5 Это было бы так: Systemctl Isolate RunLevel5.target который идентичен: SystemCTL изолирующим графиком. atarget (рекомендуется на мой взгляд).

На всякий случай, если вам интересно узнать все возможные цели:

ls /usr/lib/systemd/system/*.target
4
27.01.2020, 19:46

Нет. Как писали сами разработчики systemd дважды, один раз в своем руководстве telinitи один раз в своем руководстве runlevel, уровни запуска «устарели». Вы можете забыть об уровнях запуска.

Эти вещи на самом деле вообще не существуют в systemd, за исключением нескольких прокладок совместимости.

  • Есть несколько символических ссылок для имен целей, но эти цели фактически никогда не используются системой systemd.
    • Скорее, процесс начальной загрузки используетdefault.target(и, следовательно, один или оба из graphical.targetи multi-user.target), rescue.targetили emergency.target. И процесс выключения включает в себя shutdown.target, reboot.target, halt.targetили poweroff.target. Цели уровня выполнения -не участвуют ни в начальной загрузке, ни в завершении работы.
    • Команда telinit, которая, как можно подумать, использует символические ссылки совместимости для сопоставления аргументов строки команды -, также не делает этого. В исходном коде программы telinitесть встроенная таблица, а числа 2, 3, 4и 5в качестве аргументов команды жестко привязаны к multi-user.targetи graphical.target. ].
    • systemd-update-utmpтакже имеет встроенную внутреннюю таблицу.
  • Нет никакой "таблицы инициализации" уровня выполнения. systemd совместим только с van Smoorenburg rc, но не с van Smoorenburg init.
  • Сам systemd не поддерживает значение «текущий уровень выполнения». Скорее, почти полностью недокументированная команда systemd-update-utmpработает внутри с точки зрения состояний активации rescue.target, multi-user.targetи graphical.target.
  • systemd-sysv-generator, генератор сервисных модулей обратной совместимости systemd, объединяет каталоги /etc/rc[234].dтолько в одно отношение Wanted-Byк multi-user.targetв сгенерированных сервисных модулях. В сгенерированных сервисных единицах нет фактической ссылки на уровни выполнения. (Раньше, много лет назад,но люди из systemd обнаружили, что это пошло не так, потому что на них больше нигде не ссылались.)

Если кто-то является пользователем системы, которая собирает systemd, как это делал Arch Linux для задавшего вопрос в " Почему `init 0 `приводит к "избыточным аргументам" при установке Arch? ", никто даже не получает прокладки совместимости, а такие команды, как init 0, приводят к «родному» поведению systemd, которое заключается в жалобе на то, что команда была вызвана неправильно.

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

15
20.08.2021, 12:44

systemd представила цели в качестве аналога для уровней запуска в системе инициализации sysV. Разработчики sytemd сделали его практически совместимым с большинством скриптов sysV. То же самое происходит для telinit <runlevel>. Это переводится в эквивалент systemd.

Например, telinit 0выключает машину. systemd имеет poweroff.target для выполнения того же, что и уровень запуска 0 . Итак, telinit 0преобразуется systemd в активацию poweroff.target .

Но существуют некоторые проблемы совместимости с системами инициализации sytemd и sysV ->https://www.freedesktop.org/wiki/Software/systemd/Incompatibilities.

0
20.08.2021, 12:44

Теги

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