baltun
Администратор
- Сообщения
- 12.285
- Реакции
- 3.082
- Баллы
- 1.833
Для запуска скрипта при загрузке раньше использовался /etc/rc.d/rc.local. В CentOS 7 в этом файле стоит прямое указание, что это - прошлый день и данный метод оставлен для обратной совместимости. Продвинутые же парни должны создавать свои собственные "сервисы" systemd.
Задача: запускать скрипт /usr/local/template.sh при каждой загрузке в CentOS 7 с помощью systemd.
Создаем файл нашей службы:
Содержимое файла:
User=root - запуск от имени root! Указывайте (или не указывайте) того пользователя, от имени которого должен выполняться ваш скрипт.
Type=oneshot означает, что процесс будет завершен до запуска дальнейших юнитов.
Также может быть более развернутый вид файла:
Проверяем и перезапускаем:
Если после выполнения скрипта мы увидели ожидаемый результат, то разрешим этот "сервис" для автозапуска:
Пробуем перезагрузиться. Должно все работать.
Смотрим, когда наша служба была запущена:
Задача: запускать скрипт /usr/local/template.sh при каждой загрузке в CentOS 7 с помощью systemd.
Создаем файл нашей службы:
Код:
touch /etc/systemd/system/template-settings.service
chmod 664 /etc/systemd/system/template-settings.service
nano /etc/systemd/system/template-settings.service
Содержимое файла:
Код:
[Unit]
Description=Template Settings Service
After=network.target
[Service]
Type=oneshot
User=root
ExecStart=/usr/local/template.sh
[Install]
WantedBy=multi-user.target
Type=oneshot означает, что процесс будет завершен до запуска дальнейших юнитов.
Также может быть более развернутый вид файла:
Код:
[Unit]
Description=Slurm controller daemon
After=network.target
ConditionPathExists=/etc/slurm/slurm.conf
[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/slurmctld
ExecStart=/usr/sbin/slurmctld $SLURMCTLD_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
PIDFile=/var/run/slurmctld.pid
[Install]
WantedBy=multi-user.target
# /etc/systemd/system/slurmctld.service.d/after.conf
[Unit]
After=nss-user-lookup.target munge.service
Проверяем и перезапускаем:
Код:
systemctl daemon-reload
systemctl start template-settings.service
Если после выполнения скрипта мы увидели ожидаемый результат, то разрешим этот "сервис" для автозапуска:
Код:
systemctl enable template-settings.service
Пробуем перезагрузиться. Должно все работать.
Смотрим, когда наша служба была запущена:
Код:
systemctl status template-settings.service
Последнее редактирование: