Назад | Перейти на главную страницу

как отключить последовательную консоль после успешной загрузки (systemd / grub2)

Я включаю последовательную консоль во время процесса загрузки на centos7, который использует grub2 и systemd (вместо inittab)

Я хотел бы отменить этот последовательный ввод / вывод в самом конце загрузки, после полностью успешного запуска, по соображениям безопасности.

Как я могу этого добиться?

Обновить:

Пройдя через службы systemd, я обнаружил, что консоль распознается / включается через нее, хотя grub2 запустил ее, так что, я думаю, это отключает ее.

systemctl stop serial-getty@ttyS2.service

Как сделать так, чтобы это происходило автоматически после полностью успешного старта, когда все остальные сервисы подключились к сети? Я мог бы использовать rc.local но это унаследовано от init.d и не учитывает, что другие службы подключились должным образом.

Это выглядит ужасно хакерским, но работает. Он остановит последовательный терминал после загрузки машины.

/etc/systemd/system/killconsole.service:

[Unit]
Description=kill console after boot
After=default.target

[Service]
Type=simple
ExecStart=/bin/systemctl stop serial-getty@ttyS2.service

[Install]
WantedBy=default.target

Тогда просто запустите systemctl enable /etc/systemd/system/killconsole.service для включения устройства.

Вы также можете запустить это, используя отдельный блок таймера это не сработает до X минут после загрузки. Если вы попробуете, не забудьте вырвать Install раздел службы и запустите systemctl disable на нем, чтобы удалить его default.targetсписок желаний.

Обратите внимание, что определение «успешной загрузки» может отличаться. Например, если сеть бокса замкнута, все службы могут запуститься нормально, но вам все равно может потребоваться последовательный доступ. Таким образом, я настоятельно рекомендую создать небольшой скрипт, чтобы убедиться, что система жива и здорова (и в сети), и поместить его в ExecStartPre вариант. Если Pre-скрипт возвращает неудачный код выхода, тогда служба не будет запущена и последовательная консоль не будет отключена.

Этого можно добиться, замаскировав эту службу:

systemctl mask serial-getty@ttyS2.service

Престижность этот ответ.