Отключить автозапуск иксов ubuntu

Обновлено: 03.07.2024

После установки openssh-сервера, сервер запускается при каждой загрузке. Если я хочу, чтобы это было руководство, что мне нужно сделать?

В версии 0.6.7+ я хотел бы добавить «ручной» раздел в файл задания.

10.04 выскочка 0.6.5-8. Каков предпочтительный способ отключить автоматический запуск SSH в этом случае?

Переименуйте /etc/init/ssh.conf в /etc/init/ssh.conf.disabled.

Возможно, даже лучше, чем echo manual | sudo tee /etc/init/ssh.conf.override , см. Также, как включить или отключить услуги echo manual | sudo tee /etc/init/ssh.conf.override кажется намного лучшим ответом, потому что sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled также не позволяет запустить сервер вручную, не меняя его каждый раз. @BrianZ ssh.conf.override не работает для меня, ssh.override вместо этого. Это не рекомендуемый способ. Вы не говорите ОС, что служба не должна работать. Используйте update-rc.d (или эквивалент), чтобы сделать это.

Этого должно быть достаточно,

Это работает с выскочкой или просто старыми скриптами sys v init? Этого должно быть достаточно, даже если вы используете upstart (загрузка на основе зависимостей) Это говорит System start/stop links for /etc/init.d/ssh do not exist.

В вашем /etc/init/ssh.conf закомментируйте начало в строке:

Я придерживаюсь мнения, что в целом лучше использовать более общие механизмы, которые упоминают @komputes и hhlp. Хотя это хорошо для одного случая.

Примечание для читателя:

для меня (ubuntu 14.xx) сработал только ответ Брайана Эйджи: /etc/init/ssh.conf: закомментируйте строку "start on filesystem or runlevel . "

почему другие не делают?

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled

приведет к полной деактивации услуги. Затем он больше не запускается через «service ssh start».

просто не работает (возможно, использует другую процедуру автозапуска)

/etc/init/ssh.conf.override с «руководством»

просто не работает

коснитесь / etc / ssh / sshd_not_to_be_run

также полностью отключает систему

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

человек, спрашивающий: почему вышеупомянутые ответы даже здесь? система запуска настолько сложна или никто не пробует его решения? оо

И мы говорим только об Ubuntu 14.04. Теперь попробуйте найти универсальное решение .

Для системы, имеющей systemd правильный способ сделать это

Начать bum с административных привилегий, отключить openssh-сервер, подтвердить это, готово.

Для версий с ssh, запущенных upstart, запустите touch /etc/ssh/sshd_not_to_be_run . Сценарий инициализации upstart проверяет этот файл и, если он существует, не запускает sshd.

Ручной метод, предоставленный /etc/init/ssh.config .override метод не работает для меня, используя Ubuntu 14.04.03. sshd по-прежнему запускается автоматически.

/etc/ssh/sshd_not_to_be_run Метод предотвращает ручной sshd запуск.

Я должен был использовать метод Брайана Эйджи для удаления «начала» на линии /etc/init/ssh.conf . Затем вручную запустить sshd :

У меня был тот же вопрос, и вот что я сделал с этим. Возможно, это немного взломано, но работает достаточно хорошо, и вам не нужно ставить под угрозу программу каким-либо образом. Поместите в свой crontab следующее:

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

Написанием данной статьи меня побудила банальная задача: отключить графическую оболочку при старте системы. Казалось бы, поменять одну цифру в /etc/inittab. Но как выяснилось, все намного сложнее. Итак, разберем по полочкам, что такое inittab и systemd, для чего они нужны и как управлять автозагрузкой приложений в linux. Как человек, который самостоятельно пытается найти ответы, пришлось прочитать не одну статью, информации на эту тему много, но понимание приходит не сразу. На русскоязычных форумах как правило развернутого ответа нет. Скажу сразу, я не системный администратор и статья больше рассчитана на людей, кто относительно недавно познакомился с linux. Кому интересна данная тема, добро пожаловать.

Это моя первая статья, если есть замечания прошу в комментарии.

Что такое inittab

По сути inittab представляет из себя файл в котором можно посмотреть/поменять уровень загрузки операционной системы в /etc/inittab. Давайте разберем его


В linux существуют 7 уровней загрузки операционной системы. В нашем случае нулевой уровень — это режим восстановления, первый — это запуск в одиночном режиме под root. 2-5 загрузка в мульти пользовательском режиме (т.е. обычный режим). Отличаются они лишь набором стартовых скриптов. 6 уровень это перезагрузка. Скрипты берутся из директорий, которые расписаны в inittab. Наша система по умолчанию загружается на 5 уровне, посмотрим что-же находится в директории /etc/init.d/rc 5:

image

Скрипты в этом каталоге выполняются каждый раз при старте системы. А если быть точнее это лишь символьные ссылки на сами скрипты. Первая буква означает S(start) K(kill или stop) для изменения порядка скриптов меняется цифра, т.е. запуск скриптов выполняется по возрастанию. Руками менять можно, но рекомендуется менять через «update-rc.d»


Все просто и прозрачно.

Что такое systemd

Systemd является заменой старой традиционной загрузки inittab. Был разработан чтобы обеспечить лучшую обработку зависимостей. В настоящее время systemd поставляется по умолчанию с популярными дистрибутивами linux таких как Fedora, Mandira, Arch Linux, CentOS 7, Red Hat 7.0 и на удивление для меня в Debian 8.9.

Плюсы и минусы в явном виде для меня не понятны. Интересен в первую очередь функционал. Итак разбираемся дальше. Две вещи, которые нам нужно знать:

Чтобы посмотреть уровень загрузки, введем команду:


Как правило graphical.target аналог 5 уровня, запуск системы в графическом режиме.
Чтобы посмотреть все доступные нам уровни, введем:

image

проведем аналогию c inittab


При старте системы linux смотрит в файл (который является ссылкой)


Таким образом чтобы загрузиться в многопользовательском режиме, нам нужно сменить ссылку или использовать systemctl (делает тоже самое)

image

Автозагрузка проложений

Как мы уже поняли в каталогах /etc/rc3.d/* лежат символьные ссылки на скрипты. Где цифры от 2 это уровень загрузки у inittab или systemd. Мы можем менять руками порядок запуска, убирать и добавлять. По сути systemd пробежится по всем файлам и попытается их инициализировать при старте системы. Теперь разберем управление через команды:
chkconfig — нужна для просмотра сервисов(программ). Поддерживает режим изменения для любого уровня загрузки.

update-rc.d — служит для запуска/остановки скриптов, при старте/выключении системы. Собственно через нее мы и будем менять автозапуск графической оболочки KDE(kdm). Так уж получилось, что у меня запуск окружения KDE включен для 2-5 уровней по умолчанию.

При старте системы я отключаю 2-4 уровень загрузки и проверяю что у меня стоит 3-й уровень загрузки

Перезагружаюсь и вижу приглашение консоли tty. profit

На самом деле, это чуть больше чем консоль. Мы можем переключаться между вкладками.
CTRL+ALT+(F1-F6)

Для реализации автозапуска в Linux написано уже немало и на разных языках, но приходится искать, потому постарался свести большую часть тут. Здесь не рассказывается полностью весь процесс с нуля, но предоставлено достаточно информации и ссылок, чтобы сделать атоматический запуск программ в Linux реальностью.

Стоит сразу заметить — чтобы программа была полноценным сервисом/демоном, она должна быть соответствующе написана (link1, link2). Впрочем такое делают не всегда, хотя возможно это и не совсем правильно.

  • записать вызов программы/скрипта запуска в /etc/rc.local в фоновом режиме (&) (в разных дистрибутивах может лежать в разных местах, например, /etc/rc.d/rc.local) с перенаправленными потоками ввода/вывода в /dev/null. Например, "/home/user/my_prog 1 > /dev/null 2 > /dev/null &". Также, дополнительно, можно воспользоваться командой nohup;
  • внести вызов в /etc/inittab, согласно правилам его оформления. В отличие от первого способа тут можно указать уровень запуска для программы;
  • написать скрипт, позволяющий запускать/останавливать/перезапускать программу как демона, а также получать информацию о её состоянии.

Второй метод довольно экзотичный, сам узнал о нём совсем недавно, хотя пишут, что им пользуются многие администраторы. Тем не менее, используя его, нельзя оперировать запущенными таким способом программами как демонами, что довольно неудобно. Да и загромождать inittab некрасиво.

Последний метод на текущий момент самый «кошерный», но немного сложнее предыдущих (возможно, на первый взгляд). Именно им представлены все системные демоны, что говорит само за себя. Потому его и рассмотрю ниже.

Также есть способ автозапуска графических программ, но его опишу в конце, отдельно от остальных, т.к. он имеет недемоническую сущность.

Сразу обмолвлюсь, что у меня стоит Debian 6 и в других дистрибутивах пути могут несколько различаться.


Автозапуск программы как демона

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

Для начала стоит заглянуть в каталог /etc/init.d. Здесь содержатся запускные скрипты всех сервисов, а также два файла для желающих написать себе такой же:

README и skeleton

skeleton содержит в себе болванку скрипта запуска с довольно подробными комментариями, а README его неплохо дополняет, не смотря на его небольшой размер. Также можно посмотреть и другие файлы и попытаться найти там что-то, что прояснит непонятную ситуацию.

В 6-ом debian`е для запускных скриптов демонов используется LSB (Linux Script Base) Init Standart. Почитать о нём подробнее можно тут. Для систем, где LSB не используется стоит взглянуть сюда.

Может показаться, что это просто лишняя информация от автора, но это не так. То, что указано здесь используется при прописывании скрипта в систему. Тут как раз пригодится файл README, который показывает, что в заголовке skeleton перечислены не все возможные параметры. Как минимум есть ещё следующие:

Все параметры и их полное описание (на английском) можно увидеть тут, а на русском тут и тут (спасибо awzrno за новые ссылки ^_^). К русскому варианту добавлю, что в Required-Start: можно прописать $all, тогда текущий скрипт будет запускаться после всех остальных (иногда это бывает нужно). Также X-Interactive: true показывает, что этот скрипт может взаимодействовать с пользователем, запросом на ввод чего-нибудь, например пароля.

Далее в skeleton идёт инициализация переменных, используемых в самом скрипте. Часть из них нужно будет настроить под свои нужды. Потом проверки на то, что сам демон существует и попытка прочитать конфигурационный файл (их имена должны быть указаны в переменных выше), далее загрузка переменных rcS, а потом идёт одна из самых интересных частей init-файла:
. /lib/lsb/init-functions
это определение LSB функций работы с логами, LSB-статусом сервиса, работы с процессом. В некоторых дистрибутивах этот файл может находиться в каталоге /etc/init.d. Названия и часть подробностей можно узнать непосредственно из комментариев к функциям в этом файле, а также тут.

Следующая часть — непосредственно тело скрипта. Тело состоит из условных частей, которые являются командами для демона: start, stop, restart/reload/force-reload, status. Кто-то выделяет их в отдельные функции, кто-то нет. На мой взгляд, функциями они выглядят эстетичнее и код более понятен. Все эти команды объединяет оператор выбора case, который и выбирает для исполнения нужный кусок кода, в зависимости от команды (параметра) с которой был запущен init-скрипт.

Таким образом для создания обычного скрипта достаточно подставить в переменные в начале файла нужные значения и, возможно, немного добавить кода в функции start/stop (например загрузку/выгрузку драйвера).

После того как файл будет готов его нужно скопировать в /etc/init.d и добавить в автозагрузку:
update-rc.d <имя_скрипта> defaults
(или insserv <имя_скрипта> для debian 6 stable и выше)
Удалить из автозагрузки можно так:
update-rc.d -f <имя_скрипта> remove
(или insserv -r <имя_скрипта> для debian 6 stable и выше)

Далее также можно использовать команды sysv-rc-conf в debian или service в fedora core, чтобы включить/выключить автозагрузку сервиса.


Автозапуск графического ПО без ввода паролей

Сама по себе реализация такой возможности понижает уровень защищённости ОС, т.к. войти может любой. Но бывают ситуации, когда это необходимо. Рассмотрю тут варианты только для двух основных графических менеджеров, т.к. других установленных под рукой нет.

Убрать запрос пароля на вход можно в центре управления (kcontrol) -> системное администрирование -> менеджер входа в систему -> удобства. Там выбрать пользователя, под которым входить (кроме рута) и поставить нужные галочки (разрешить автовход и вход без ввода пароля).

Чтобы сделать автозапуск программы нужно в каталог /home/<пользователь>/.kde/Autostart добавить ссылку на запускной файл/скрипт нужного ПО.

Тут убрать запрос пароля на вход можно также в центре управления (gnome-control-center) -> Login Screen. Там, под рутом (ткнуть на замок, ввести пароль) выбрать пользователя, под которым входить (кроме суперпользователя).

Для автозапуска программы опять же в центре управления выбрать Startup Applications -> Add и заполнить маленькую форму.

Для обоих графических менеджеров:
Если нужно запустить под обычным пользователем, но от рута, то ещё надо настроить правила в /etc/sudoers на запуск конкретной программы/набора программ от имени суперпользователя (манами рекомендуется для безопасности делать это с помощью visudo). Как это делать рассказывать не буду, т.к. в man sudoers всё хорошо расписано.

Можно ли отключить X во время загрузки? Я настраиваю сервер, поэтому было бы неплохо, если бы он не загружал графический интерфейс при каждой загрузке.

На экране входа в систему GDM от 11.04 и более ранних, я думаю, была опция сеанса xterm, которая просто выдаст вам командную строку. В качестве альтернативы вы можете получить что-то из опции восстановления в GRUB, хотя, вероятно, вы не сможете установить это значение по умолчанию таким образом. Спасибо. Итак, как мне остановить загрузку LightDM при загрузке?

Редактируйте /etc/default/grub с вашим любимым редактором, например nano :

Найдите эту строку:

Измените это на:

Для систем, которые используют systemd

Это дополнительный шаг для системных выпусков, например, Ubuntu 15.04, все еще необходимы шаги, описанные выше для grub.

Вы должны сказать, systemd чтобы не загружать графический менеджер входа в систему:

Вы по-прежнему сможете использовать X, набрав startx после входа в систему.

Это работает для lightdm, это работает для любого графического менеджера входа в систему? Это правильный способ загрузки системы Linux без загрузки X-сервера? Просто кажется более логичным? Выберите один . :) Любой графический менеджер входа в систему? Вместо этого это решение привязано к grub, который не используется (или даже недоступен) на новых мобильных платформах, где работает Ubuntu, а отключение службы не зависит от загрузчика. Надлежащим образом ? Факт не упоминается. Более логично? Ингибирование определенной службы не является логически параметром времени загрузки. Но вы все еще как-то правы из-за другого факта: ваше решение не только блокирует lightdm, но и plymouth (на шаге initrd и других), поэтому его семантика заключается не в «отключении X», а в «отключении любой графической настройки», и это требует возни Конфигурация загрузчика. Спасибо ! Поскольку вопрос задан для Ubuntu, а не для мобильной платформы (можете ли вы что-нибудь изменить в мобильной версии Ubuntu? Почему это было бы хорошо? Я предполагаю, что вы будете заблокированы в подсказке, которая ничего не знает о вводе с клавиатуры и принимает причудливые прикосновения пальцев и жесты: P) Я предполагаю, что мы говорим об Ubuntu, настольной операционной системе на базе Linux, которую я люблю и могу изменять в соответствии со своими потребностями. :) Но вы правы, есть проблема семантики с заголовком поста, не стесняйтесь редактировать его как-нибудь более правильно! Спасибо за комментарии. @Joyce сначала запустится, systemctl get-default чтобы узнать, каково текущее имя уровня запуска и запомните его имя, затем используйте его, systemctl set-default multi-user.target чтобы изменить его на «multi-user.target», или вместо этого запустите эти команды равенства и посмотрите изменения. rm '/etc/systemd/system/default.target' тогда ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target' . Если проблема все еще существует, верните уровень запуска по умолчанию, через который вы его запомните systemctl set-default RunLevelName .

Установка графического интерфейса, вероятно, приведет к его автоматическому запуску, но в Ubuntu очень легко загружаться в текстовом режиме. Просто откройте /etc/default/grub как root и добавьте text в

линия. Затем запустите:

Ваша система всегда будет загружаться в текстовом режиме.

Если вы хотите загрузиться с GUI, просто нажмите e в меню загрузки и удалите text из kernel строки.

Если вы хотите запустить графический интерфейс после загрузки, просто запустите:

Надеюсь это поможет :)

Ubuntu 11.10 не использует gdm в качестве диспетчера входа в систему по @hhlp: исправлено. В последнем обновлении Lightdm задание upstart учитывает команду text cmdline ядра. @AshRj: Да, это действительно для всех версий Ubuntu, использующих upstart :)

Если вы хотите загрузиться в текстовом режиме:

Редактировать /etc/default/grub . Например:

Найдите эту строку:

Затем обновите Grub:

Примечание. При удалении quiet splash (то есть GRUB_CMDLINE_LINUX_DEFAULT="" ) во время загрузки будет отображаться текст, а затем будет отображаться графический экран входа в систему, как обычно. Замена quiet splash на text оставит вас в приглашении входа в систему; чтобы начать сеанс GNOME, используйте sudo /etc/init.d/gdm start или startx .

Чтобы отключить GDM:
Установите Bum .

После установки он будет найден в Системе >> Администрирование >> Bootup-Manager

альтернативный текст

Снимите флажок Диспетчер отображения Gnome

Конфиг GRUB работал. Из любопытства, зачем мне отключать GDM? Подтверждено в 13.04, что GRUB_CMDLINE_LINUX_DEFAULT="" работает, чтобы показать детали во время загрузки, все еще при запуске графического входа в систему.

Если вы используете lightdm в качестве менеджера входа в систему, его можно отключить, отключив его.

Вы можете использовать переопределение:

И запустить lightdm по команде:

Чтобы восстановить вашу систему так, чтобы lightdm всегда запускался при загрузке:

Для получения дополнительной информации, выскочка поваренная книга ваш друг:

Он уже ответил на несколько старых вопросов, но не может найти их сейчас, поэтому я суммирую различные ситуации здесь.

Чтобы остановить запущенный X-сервер startx , просто прекратите сеанс.

Чтобы остановить X-сервер, запущенный диспетчером входа в систему (GDM), запустите

затем перейдите к tty , например, нажав Ctrl - Alt - F1 , затем войдите в систему в текстовом режиме.

Чтобы вообще не запускать Менеджер входа в систему (и X), измените

затем обновите файл конфигурации grub с помощью

так что в следующий раз вы перейдете непосредственно в текстовый режим, и вам нужно startx будет начать сеанс X, или в качестве альтернативы sudo service gdm start .

Я сделал следующее

Шаг 1 Сначала обновите ваш репозиторий, запустив

sudo apt-get update

Шаг 2 В старой версии lightdm есть какая-то ошибка, поэтому мы должны обновить ее. Для этого беги,

sudo apt-get install lightdm

Шаг 3 Теперь нам нужно изменить конфигурацию grub. Шаг 3а Откройте в /etc/default/grub вашем любимом редакторе и измените

Шаг 3b Также прокомментируйте GRUB_HIDDEN_TIMEOUT = 0 Эта строка предназначена для скрытия меню GRUB.

Шаг 4 Теперь мы обновим конфигурацию GRUB.

Шаг 5 Ubuntu 11.10 Desktop Edition использует lightdm для графического интерфейса. Нам нужно отключить то же самое

sudo update-rc.d -f lightdm remove

Шаг 6 Теперь перезагрузите компьютер.

Да, сказать системе, чтобы она запускалась в консоли во время загрузки, можно путем редактирования команды grub. Когда вы достигнете меню grub, выделите запись Ubuntu и нажмите e .

Вы увидите текст, как на изображении ниже:

введите описание изображения здесь

Изменить текст тихий всплеск на текст . Нажмите F10 для запуска. (Источник: Rolling-Ubuntu ). Я проверил это на своей системе, 14.04, загрузился в текстовую консоль, lightdm не видно. Начал Lightdm с sudo initctl start lightdm

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

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

Ubuntu 18.04 Live ISO по-прежнему запускает Xorg независимо от text варианта. Вместо этого, указание уровня запуска, просто 3 вместо text , заставляет его работать. Кредит идет на этот ответ . @Ruslan Полезная информация, спасибо. Мой ответ на самом деле предназначен только для настольных компьютеров и был опубликован в 2015 году, когда был выпущен 14.04. Я тестировал это на Live ISO настольной версии Ubuntu 18.04. Ничто не требует сервера или других выпусков, чтобы эта 3 опция работала (и text чтобы не работала, что случилось со мной).

Я заметил, что этот поток вращается вокруг предположения, что вы используете LightDM в качестве диспетчера дисплеев. Хотя это может быть обычный DM / welcomer, это не является частью первоначального вопроса. (И он не уточнил ..)

Я использую KDE / KDM на моем сервере. Вместо этого я просто отключаю запуск / сервис upstart под уровнем запуска 2:

/etc/init/kdm.conf : (kdm: 4: 4.8.5-0ubuntu0.3, версия Upstart: 1.5-0ubuntu7.2)

Предполагая, что при новой перезагрузке ваш уровень запуска по умолчанию равен 2, у вас будет консоль, а не KDM. Затем вы можете запустить DM / DE вручную, когда это необходимо = используйте 'startx' / etc. Чтобы вернуть машину в консоль и полностью выйти из X-сервера после этого, просто используйте «Выйти».

Другие сценарии dm .confs аналогичны. (Я настраиваю свой сервер следующим образом . чтобы иногда работать с графическим интерфейсом, но не тянуть ресурсы, когда они не используются / не нужны или просто перезагружаются.)

РЕДАКТИРОВАТЬ

(Моя текущая система: Upstart 1.12.1 / Ubuntu 14.04)

В связи с выскочкой способ решить эту проблему в последнее время заключается в простом отключении диспетчера отображения от запуска при загрузке:

эхо "ручной" | sudo tee -a / etc / init / .override

Это может быть любая служба в / etc / init, включая kdm / gdm. 'startx' для запуска по мере необходимости после перезагрузки.

Читайте также: