Если я вас хорошо понимаю, ваш компьютер не может загрузиться из-за периодически возникающих лучей излучения, и вы хотите запустить свой компьютер между двумя из этих событий чтобы перейти к проверке.Итак, не имеет значения, что ваш компьютер в конечном итоге загрузится, не так ли?
Вы можете сделать это:
initrd
образ grub
, чтобы изменить его), добавьте init = / path / to / your / program
Ваша программа запустит вместо стандартного init
, поэтому ваша машина больше не будет загружаться, но ваша программа будет работать.
Я надеюсь, что вам не понадобится ничего, предоставляемое стандартной установкой Linux (точки монтирования, кроме /
, демоны, удаленный доступ, последовательная консоль и т. Д.), Потому что у вас не будет ничего из этого конечно, поскольку ваша система вообще не запускалась.
Обратите внимание, что если вам нужно, чтобы ваша машина загружалась нормально после вашего кода, вы, вероятно, можете exec
/ sbin / init
в качестве последней инструкции.
Я должен предложить ответ после того, как потратил некоторое время на этот вопрос. У меня была такая же проблема, как указано выше. Моя ОС — RHEL 7.5 с SELinux, настроенным на принудительное выполнение. Версия Nexus: 3.13.0 -01.
Служба связи с systemd была определена как идентифицированная Сонатип. См. Инструкции Sonatype по запуску службы systemd здесь:https://help.sonatype.com/repomanager3/installation/run-as-a-service
Служба, использующая определение nexus.service с этой страницы, запускается, но в конечном итоге достигает тайм-аута и отключается. Тип службы разветвления Тип разветвления ожидает некоторое время завершения родительского процесса, но это событие, по-видимому, не происходит. Я не связывался с Sonatype, но, поскольку этот вопрос не обсуждался, я добавляю решение, которое сработало. Чтобы решить эту проблему, я изменил тип с forking на simple в файле nexus.service.
Также убедитесь, что /opt/nexus принадлежит пользователю nexus
Вот фрагмент кода, работающий согласно :/etc/systemd/system/nexus.service
[Unit]
Description=nexus service
After=network.target
[Service]
Type=simple
LimitNOFILE=65536
ExecStart=/opt/nexus-3.19.0-01/bin/nexus start
ExecStop=/opt/nexus-3.19.0-01/bin/nexus stop
User=nexus
Restart=on-abort
[Install]
WantedBy=multi-user.target
semanage fcontext -a -t initrc_t "/opt/nexus(/.*)?"
semanage fcontext -a -t initrc_exec_t "/opt/nexus(/.*)?"
restorecon -R -v /opt/nexus > /dev/null
Чтобы исправить эту проблему, добавьте политику SELinux, чтобы разрешить Systemd доступ к двоичному файлу nexus по пути /app/nexus/bin/nexus с помощью следующей команды.
sudo chcon -R -t bin_t /opt/nexus/bin/nexus