2

Я пытался настроить ssh-сервер на своем рабочем столе для удаленного доступа и столкнулся с несколькими проблемами. Первое, что я обнаружил, это то, что sshd не запускается при загрузке. Как только я бегу:

sudo service sshd start

вручную я могу подключиться к компьютеру через ssh, поэтому я знаю, что демон ssh установлен правильно. Теперь я просто хочу, чтобы это началось при загрузке.

Посмотрев на это я нашел в

/etc/rc.d/rc3.d 

Я нашел скрипт

K##sshd

Или что-то вдоль этих линий. Я считаю, что K подразумевает, что при входе на уровень выполнения 3 он выключает sshd. Все, что мне нужно сделать, чтобы начать, - это создать файл S ## sshd, чтобы перезапустить его, или есть лучший способ сделать это. Я подумал, что мне нужно получить несколько более осведомленных мнений, прежде чем я начну переименовывать и создавать случайные файлы.

3 ответа3

6

Я полагаю, что 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

2

Redhat использует инструмент ntsysv для включения / выключения служб для каталогов rcN.d.

0

если вы хотите войти на уровне запуска 3 (это многопользовательский режим, только для входа в консоль), все, что вы хотите сделать, это $ sudo init 3 . Другой способ сделать это - добавить параметр ядра "3", и когда вы загружаете grub, нажмите "e", чтобы изменить параметр загрузки ядра.

ВНИМАНИЕ: применение этого к машине, работающей на уровне выполнения 5 (многопользовательский режим, с дисплеем дисплеев и логинами консоли), убьет X11 и заставит вас войти в консольный режим.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .