Давайте запустимся с некоторых полезных статей
Плюс тот Вы уже перечислили.
В основном то, что это говорит Вам, является этим:
В основном то, что необходимо сделать, посмотреть на вывод lsof
чтобы Ваш процесс видел, где он застревает. Мягкий предел можно измениться или вниз изменить возможное количество открытых дескрипторов файлов во время сессии. Жесткий предел, который можно только понизить, но и только базироваться, может увеличиться.
Таким образом, я предложил бы смотреть на:
sysctl fs.file-nr
который дал бы Вам общее количество дескрипторов файлов, открытых и неиспользованных в системе и также выводе
lsof -p
где
рассматриваемый процесс для определения, сколько файлов и сокетов, которые процесс имеет открытый и видит, поражаете ли Вы свой предел.
внутри системного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
Большое спасибо. Итак, если я правильно понял:
Например:
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
Нет. Как писали сами разработчики systemd дважды, один раз в своем руководстве telinit
и один раз в своем руководстве runlevel
, уровни запуска «устарели». Вы можете забыть об уровнях запуска.
Эти вещи на самом деле вообще не существуют в 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
также имеет встроенную внутреннюю таблицу. rc
, но не с van Smoorenburg init
. 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, которое заключается в жалобе на то, что команда была вызвана неправильно.
runlevel
. справочные страницы systemd. Freedesktop.org. telinit
. справочные страницы systemd. Freedesktop.org. bootup
. справочные страницы systemd. Freedesktop.org. /etc/inittab
осталось в прошлом.. Часто задаваемые ответы. 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.