Сервер SSH на уровне выполнения 3
Я пытался настроить SSH-сервер на своем рабочем столе для удаленного доступа и столкнулся с несколькими проблемами. Первое, что я обнаружил, это то, что sshd не запускается при загрузке. Как только я бегу:
sudo service sshd start
вручную я могу подключиться к компьютеру через ssh, поэтому я знаю, что демон ssh установлен правильно. Теперь я просто хочу, чтобы это началось при загрузке.
Посмотрев на это я нашел в
/etc/rc.d/rc3.d
Я нашел скрипт
K##sshd
Или что-то вдоль этих линий. Я считаю, что K подразумевает, что при входе на уровень выполнения 3 он выключает sshd. Все, что мне нужно сделать, чтобы начать, - это создать файл S##sshd, чтобы перезапустить его, или есть лучший способ сделать это. Я подумал, что мне нужно получить более осведомленные мнения, прежде чем я начну переименовывать и создавать случайные файлы.
3 ответа
Я полагаю, что K подразумевает, что при входе в уровень выполнения 3 он выключает sshd
Да. K для Kill.
Это старый стартап в стиле SystemV. Все базовые сценарии находятся в init.d, и в каталогах rc?.D, откуда они фактически запускаются, есть различные символические ссылки с конкретными соглашениями об именах (S00..., K99...).
Когда вы изменяете уровни запуска, скажем, с 1 на 3, процесс init порождает скрипт, который входит в каталог для старого уровня запуска (/etc/rc.d/rc1.d/), и запускает все скрипты, которые начинаются с K, как
K_NUMBER_some_service stop
Затем вы переходите в каталог с новым уровнем запуска (в данном случае /etc/rc.d/rc3.d) и запускаете все сценарии, которые начинаются с S, как
S_NUMBER_some_service start
Сценарии выполняются в алфавитном порядке, порядок которого обычно определяется НОМЕРОМ в диапазоне от 00 до 99. Порядок важен - вы не хотите запускать sshd перед началом работы в сети.
Теоретически, если вы знаете, как определить число / порядок его выполнения, вы можете сделать символические ссылки вручную. Большинство сценариев имеют этот номер заказа в качестве комментария (попробуйте: head /etc/rc.d/init.d/sshd
). Но вам гораздо лучше использовать соответствующие инструменты для работы. На Redhat есть ntsysv
, а также system-config-services
, Если вы хотите, вы можете даже использовать инструмент командной строки chkconfig
, Я думаю
chkconfig --level 2345 sshd on
будет делать то, что вы хотите. Проверить с помощью chkconfig --list sshd
Redhat использует инструмент ntsysv для включения / выключения служб для каталогов rcN.d.
Если вы хотите войти на уровне запуска 3 (это многопользовательский режим, только для входа в консоль), все, что вы хотите сделать, это $ sudo init 3
, Еще один способ сделать это - добавить параметр ядра "3", и когда вы загружаете grub, нажмите "e", чтобы изменить параметр загрузки ядра.
ВНИМАНИЕ: применение этого к машине, работающей на уровне выполнения 5 (многопользовательский режим, с дисплеем дисплеев, а также входами в консоль) убьет X11 и заставит вас войти в консольный режим.