Centos 7 как запустить приложение

Обновлено: 07.07.2024

Добавить сервис самозапуска в CentOS 7 очень удобно, нужны всего две команды (в качестве примера возьмем Jenkins):

Добавить скрипты в centos7Два видаОбычно используемый метод, в качестве примера возьмем сценарий autostart.sh:

метод первый

1. Предоставьте исполняемым файлам сценария ( /opt/script/autostart.sh Путь к вашему скрипту)
chmod +x /opt/script/autostart.sh

2. Открыть /etc/rc.d/rc.local или /etc/rc.local Файл, добавьте в конец следующий контент
su - user -c '/opt/script/autostart.sh'

3. В centos7 /etc/rc.d/rc.local Разрешения уменьшены, поэтому вам необходимо выполнить следующую команду, чтобы предоставить ему исполняемые разрешения
chmod +x /etc/rc.d/rc.local

Метод второй

1. Переместите сценарий в /etc/rc.d/init.d Под содержанием
mv /opt/script/autostart.sh /etc/rc.d/init.d

2. Увеличьте права доступа к исполняемым файлам скрипта.
chmod +x /etc/rc.d/init.d/autostart.sh

3. Добавьте скрипты в автоматически запускаемый проект.

1. Напишите служебные файлы

пример

nginx.service

redis.service

2. Сохраните каталог.

Сохраните в каталоге с 754 разрешениями:
/usr/lib/systemd/system

3. Настройте автоматический запуск загрузки.

Выполнить в любом каталоге
systemctl enable nginx.service

4. Другие команды

Запустить службу nginx
systemctl start nginx.service
настроен на автоматический запуск
systemctl enable nginx.service
Остановить автоматический запуск
systemctl disable nginx.service
Просмотр текущего статуса службы
systemctl status nginx.service
перезапустите службу
systemctl restart nginx.service
Просмотреть все запущенные службы
systemctl list-units --type=service

Пример Redis

Фоновый скрипт для redis.service уже существует. Установить фоновый запуск напрямую невозможно. Вам необходимо

пример кота

Самостоятельный запуск tomcat в фоновом режиме более проблематичен, потому что он также включает переменные среды java.Если jdk / jre не установлен, запуск бесполезен.

Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремились спроектировать обратно совместимым со скриптами инициализации SysV init и предоставить полезные функции, такие, как параллельный запуск системных сервисов во время загрузки, активацию демонов по требованию, поддержку снепшотов состояния системы и логику управления сервисами, основанную на зависимостях. В CentOS 7 systemd заменяет Upstart как систему инициализации по умолчанию.

В этой статье мы рассмотрим процесс управления сервисами в systemd для пользователя CentOS 7. Эти знания будут полезны и в других дистрибутивах, ведь systemd уже давно используется в Fedora и планируется в Ubuntu 14.10 и Debian 8. Хорошо это или нет — оставим за кадром.

CentOS 7 Systemd Infobox

В процессе чтения статьи вы можете попробовать systemd на классических VPS и облачных VPS от Infobox. Мы стремимся своевременно добавлять поддержку современных ОС, чтобы вы могли использовать последние технологии для более эффективной работы. Сама идея написания статьи родилась после очередного вопроса пользователей об использовании сервисов в CentOS 7.

Введение

  • /usr/lib/systemd/system/ – юниты из установленных пакетов RPM.
  • /run/systemd/system/ — юниты, созданные в рантайме. Этот каталог приоритетнее каталога с установленными юнитами из пакетов.
  • /etc/systemd/system/ — юниты, созданные и управляемые системным администратором. Этот каталог приоритетнее каталога юнитов, созданных в рантайме.
  • .service – системный сервис
  • .target — группа юнитов systemd
  • .automount – точка автомонтирования файловой системы
  • .device – файл устройства, распознанного ядром
  • .mount – точка монтирования файловой системы
  • .path – файл или директория в файловой системе
  • .scope – процесс, созданный извне
  • .slice – группа иерархически организованных юнитов, управляющая системными процессами
  • .snapshot – сохраненное состояние менеджера systemd
  • .socket – сокет межпроцессного взаимодействия
  • .swap – Свап-устройство или свап-файл (файл подкачки)
  • .timer – таймер systemd

Основные функции systemd в CentOS 7

Управление сервисами

В предыдущих версиях CentOS использовалась SysV или Upstart. Скрипты инициализации располагались в директории /etc/rc.d/init.d/. Такие скрипты обычно писались на Bash и позволяли администратору управлять состоянием сервисов и демонов. В CentOS 7 скрипты инициализации были заменены сервисными юнитами.

По способу использования сервисные юниты .service напоминают скрипты инициализации. Для просмотра, старта, остановки, перезагрузки, включения или выключения системных сервисов используется команда systemctl. Команды service и chkconfig по-прежнему включены в систему, но только по соображениям совместимости.



При использовании systemctl указывать расширение файла не обязательно.

  • systemctl start name.service – запуск сервиса.
  • systemctl stop name.service — остановка сервиса
  • systemctl restart name.service — перезапуск сервиса
  • systemctl try-restart name.service — перезапуск сервиса только, если он запущен
  • systemctl reload name.service — перезагрузка конфигурации сервиса
  • systemctl status name.service — проверка, запущен ли сервис с детальным выводом состояния сервиса
  • systemctl is-active name.service — проверка, запущен ли сервис с простым ответом: active или inactive
  • systemctl list-units --type service --all – отображение статуса всех сервисов
  • systemctl enable name.service – активирует сервис (позволяет стартовать во время запуска системы)
  • systemctl disable name.service – деактивирует сервис
  • systemctl reenable name.service – деактивирует сервис и сразу активирует его
  • systemctl is–enabled name.service – проверяет, активирован ли сервис
  • systemctl list-unit-files --type service – отображает все сервисы и проверяет, какие из них активированы
  • systemctl mask name.service – заменяет файл сервиса симлинком на /dev/null, делая юнит недоступным для systemd
  • systemctl unmask name.service – возвращает файл сервиса, делая юнит доступным для systemd

Работаем с целями (targets) Systemd

Предыдущие версии CentOS с SysV init или Upstart включали предопределенный набор уровней запуска (runlevels), которые представляли специфичные режимы для операций, пронумерованные от 0 до 6. В CentOS 7 концепция уровней запуска была заменена целями systemd.

Файлы целей systemd .target предназначены для группировки вместе других юнитов systemd через цепочку зависимостей. Например юнит graphical.target, использующийся для старта графической сессии, запускает системные сервисы GNOME Display Manager (gdm.service) и Accounts Service (accounts–daemon.service) и активирует multi–user.target. В свою очередь multi–user.target запускает другие системные сервисы, такие как Network Manager (NetworkManager.service) или D-Bus (dbus.service) и активирует другие целевые юниты basic.target.

В CentOS 7 присутствуют предопределенные цели, похожие на стандартный набор уровней запуска. По соображениям совместимости они также имеют алиасы на эти цели, которые напрямую отображаются в уровнях запуска SysV.

  • poweroff.target (runlevel0.target) – завершение работы и отключение системы
  • rescue.target (runlevel1.target) – настройка оболочки восстановления
  • multi–user.target (runlevel2.target, runlevel3.target, runlevel4.target) – настройка неграфической многопользовательской системы
  • graphical.target (runlevel5.target) – настройка графической многопользовательской системы
  • reboot.target (runlevel6.target) – выключение и перезагрузка системы

Для определения, какой целевой юнит используется по умолчанию, полезна следующая команда: systemctl get–default.

Для просмотра всех загруженных целевых юнитов воспользуйтесь командой systemctl list-units --type target, а для просмотра вообще всех целевых юнитов командой: systemctl list-units --type target --all.

Для изменения цели по умолчанию поможет команда systemctl set-default name.target.

Для изменения текущей цели: systemctl isolate name.target. Команда запустит целевой юнит и все его зависимости и немедленно остановит все остальные.

Выключение и перезагрузка системы

В CentOS 7 systemctl заменяет значительное количество команд управления питанием. Прежние команды сохранены для совместимости, но рекомандуется использовать systemctl:
systemctl halt – останавливает систему
systemctl poweroff – выключает систему
systemctl reboot – перезагружает систему

Управление systemd на удаленной машине

Systemd позволяет управлять удаленной машиной по SSH. Для управления используйте команду:
systemctl --host user_name@host_name command, где user_name – имя пользователя, host_name – имя хоста, которым осуществляется удаленное управление, а command – выполняемая команда systemd.

Типичный systemd .service

Этот раздел поможет вам, если вам необходимо быстро сделать поддержку управления сервисом из systemd. Подробная информация о всех параметрах файла .service есть в соответствующем разделе документации по systemd.


Давайте посмотрим на секцию [Unit]. Она содержит общую информацию о сервисе. Такая секция есть не только в сервис-юнитах, но и в других юнитах (например при управлении устройствами, точками монтирования и т.д.). В нашем примере мы даем описание сервиса и указываем на то, что демон должен быть запущен после Syslog.

В следующей секции [Service] непосредственно содержится информация о нашем сервисе. Используемый параметр ExecStart указывает на исполняемый файл нашего сервиса. В Type мы указываем, как сервис уведомляет systemd об окончании запуска.

Финальная секция [Install] содержит информацию о цели, в которой сервис должен стартовать. В данном случае мы говорим, что сервис должен быть запущен, когда будет активирована цель multi–user.target.

Это минимальный работающий файл сервиса systemd. Написав свой, для тестирования скопируйте его в /etc/systemd/system/имя_сервиса.service. Выполните команды systemctl daemon-reload. Systemd узнает о сервисе и вы сможете его запустить.

Дополнительная информация

Заключение

В этой статье мы научились управлять сервисами CentOS 7. Конечно, это далеко не единственная функция systemd и другие ее стороны будут рассмотрены в будущем. Сама ОС практически со времени релиза доступна на классических VPS и облачных VPS от Infobox. Попробуйте systemd прямо сейчас. Эти знания будут полезны в связи с переходом многих дистрибутивов на systemd.

Если вы обнаружили ошибку в статье, автор ее с удовольствием исправит. Пожалуйста напишите в ЛС или на почту о ней.
В случае, если вы не можете оставлять комментарии на Хабре, можно написать их в блоге Сообщества InfoboxCloud или в нашей группе в Facebook.

Вся сила Linux в использовании терминала. Это такая командная оболочка, где вы можете выполнять различные команды, которые будут быстро и эффективно выполнять различные действия. Ну впрочем, вы наверное это уже знаете. Для Linux было создано множество скриптов, которые выполняются в различных командных оболочках. Это очень удобно, вы просто объединяете несколько команд, которые выполняют определенное действие, а затем выполняете их одной командой или даже с помощью ярлыка.

2. Как работают скрипты.

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

3. Как запустить sh скрипт из командной строки?

Допустим у вас есть скрипт hello.sh состоящий из одной команды.

Чтобы его запустить, надо зайти в каталог, где расположен скрипт, набрать название интерпретатора sh и первым параметров указать ваш файл hello.sh.

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

Для этого необходимо:

1. Указать интерпретатор внутри файла.


Содержимое скрипта hello.sh получается таким:

2. Сделать наш файл исполняемым.

Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости. Для этого используется команда chmod +x и имя файла скрипта:

Запуск скрипта sh в Linux:

Или полный путь от корня:

Теперь вы можете выполнить:


А если нам нужно запустить скрипт на php, то выполните:

Вот так все просто здесь работает.

Так можно запустить скрипт как фоновый процесс, используйте символ & :

На большинстве серверов под управлением CentOS нет необходимости устанавливать и держать запущенным графический интерфейс пользователя X Window в паре с одной из сред рабочего стола (например, GNOME или KDE). Это выгодно не только с точки зрения экономии системных ресурсов, но и потому, что можно выполнить установку CentOS в режиме minimal, а затем доустановить только необходимые пакеты. Однако, часто бывает необходимо установить и запустить графическую оболочку в системе CentOS после её установки например, для упрощения выполнения процедур конфигурирования или запуска определенных приложений, имеющих графический интерфейс пользователя. В данном руководстве описывается процесс установки, запуска и выключения графической оболочки (GNOME или KDE) в CentOS 6.

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

Установка графического интерфейса X Windows (X11) и среды GNOME в CentOS

Для установки графического интерфейса и оболочки GNOME необходимо установить несколько групп пакетов, что можно сделать, выполнив следующую команду:

yum groupinstall basic-desktop desktop-platform x11 fonts

Альтернативно, можно запустить установку групп пакетов, указав их полные имена(набор устанавливаемых пакетов будет таким же):

yum groupinstall "Desktop" "Desktop Platform" "X Window System" "Fonts"

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

Установка и запуск графической оболочки в CentOS - Gnome

Для выхода из графической оболочки выберите пункт "System" в верхнем меню, а затем нажмите "Log Out . "

Установка и запуск графической оболочки в CentOS - выход из Gnome

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

Установка и запуск графической оболочки в CentOS - утилита setup после первой перезагрузки

Установка KDE в CentOS

После выполнения установки графического интерфейса и оболочки GNOME, как описано выше можно установить KDE, запустив:

По окончании установки KDE необходимо настроить, какую из двух оболочек запускать при старте графического интерфейса X11. Для этого нужно создать файл .xinitrc и записать в него startkde для запуска среды KDE или GNOME-session для запуска среды GNOME.

Для создания настройки, выполняющей запуск KDE выполните:

Соответственно, для создания настройки для запуска GNOME выполните:

Обратите внимание: обе эти команды перезапишут файл .xinitrc, так что, если вы его создали ранее и внесли в него изменения, добавьте строку для запуска среды рабочего стола вручную, например, с помощью текстового редактора vi.

Теперь, после выполнения настройки, запустите KDE:

Установка и запуск графической оболочки в CentOS - KDE

Для выхода из оконного менеджера KDE обратно, в текстовую консоль, запустите главное меню, затем выберите "Leave" и "Log Out"

Установка и запуск графической оболочки в CentOS - выход из KDE

Установка дополнительных графических программ.

В примерах выше устанавливается только базовый набор программ, работающих в режиме графического интерфейса. Конечно, зная название нужного пакета, всегда можно доустановить программу, воспользовавшись командой yum. Однако, можно выполнить установку подходящей группы пакетов, в которой содержится наиболее часто используемое программное обеспечение.

Набор Graphical Administration Tools содержит графические средства администрирования, такие как средства настройки брандмауэра, служб, пользователей и другие. Для установки выполните:

yum groupinstall "Graphical Administration Tools"

набор Internet Browser содержит браузер Firefox с необходимыми дополнениями:

yum groupinstall "Internet Browser"

В набор General Purpose Desktop входят общие программы графического интерфейса, такие как просмотр документов, программа для записи компакт-дисков, простейший текстовый редактор, просмотр изображений, видео и аудио проигрыватели и другие. Для установки запустите:

yum groupinstall "General Purpose Desktop"

Если вам необходим полноценный офисный пакет LibreOffice, то выполните установку набора Office Suite and Productivity:

yum groupinstall "Office Suite and Productivity"

Для работы с графикой и сканерами (gimp и xsane) нужно установить набор Graphics Creation Tools:

yum groupinstall "Graphics Creation Tools"

Естественно, все наборы дополнительных графических программ можно установить и вместе, запустив команду yum следующим образом:

yum groupinstall "Graphical Administration Tools" "Internet Browser" "General Purpose Desktop" "Office Suite and Productivity" "Graphics Creation Tools"

Настройка запуска графического интерфейса при загрузке операционной системы CentOS

Конечно, вы всегда можете запустить графический интерфейс из интерфейса командной строки, выполнив команду startx после загрузки CentOS и выполнения входа в систему. Если же вы хотите, чтобы графический интерфейс запускался сразу после загрузки CentOS, то вам необходимо внести правки в файл /etc/inittab. Найдите в нем следующую строку:

Цифра 3 в ней означает, что система запускается в режиме интерфейса командной строки. Чтобы запустить её в графическом интерфейсе необходимо поменять 3 на 5:

После перезагрузки вы увидите графический экран входа в систему:

Установка и запуск графической оболочки в CentOS - графический экран входа в систему

Переключение между графическим и текстовым интерфейсом

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

Favorite

Добавить в избранное

Главное меню » Операционная система CentOS » Как установить и управлять программным обеспечением на CentOS 7

Как установить и управлять программным обеспечением на CentOS 7

Н а этом уроке мы покажем вам, как установить и управлять программным обеспечением на Linux VPS, который работает на CentOS 7 в качестве операционной системы.

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

Вывод команды покажет вам пакеты, которые имеют доступные обновления, и вы должны обновлять их как можно скорее. Вы можете обновить пакеты один за другим, и вы можете обновить все пакеты сразу же с помощью команды:

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

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

Выход должен быть аналогичен приведенному ниже:

Вывод должен быть похож на следующий:

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

Менеджер пакетов также удалит пакеты, которые зависят от него.

Как установить и управлять программным обеспечением на CentOS 7

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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