Ликбез
Всё интересное на сервере — веб, базы, SSH, мониторинг — живёт службами. Ими управляет systemd, и два его инструмента, systemctl и journalctl, — хлеб админа. Разберём управление и главный сценарий: «служба не стартует».
systemctl status nginx # жива ли, давно ли, последние строки журнала sudo systemctl start nginx # запустить sudo systemctl stop nginx # остановить sudo systemctl restart nginx # перезапустить (обрывает соединения) sudo systemctl reload nginx # перечитать конфиг без обрыва, если служба умеет systemctl list-units --type=service --state=running # что сейчас работает
Грабли, на которые наступает каждый новичок: start запускает службу сейчас, но после перезагрузки сервера она не поднимется. За «вставать при загрузке» отвечает enable, и это независимые вещи:
sudo systemctl enable nginx # подниматься при загрузке sudo systemctl enable --now nginx # и в автозагрузку, и запустить сразу systemctl is-enabled nginx # проверить: enabled / disabled sudo systemctl disable barsuk # убрать лишнее из автозагрузки
Симптом «после перезагрузки сервера всё лежит, пока не зайдёшь и не запустишь руками» — это ровно забытый enable.
journalctl -u nginx -e # журнал службы, сразу в конец journalctl -u nginx -f # смотреть вживую (как tail -f) journalctl -u nginx --since "10 min ago" # за последние 10 минут journalctl -p err -b # все ошибки с момента загрузки
Этот порядок — готовый ответ на вопрос собеседования «служба не поднимается, твои действия?», один из обязательных в типовом наборе. Рука ставится на стенде: сломай конфиг nginx нарочно и почини по журналам. На курсе Linux таких упражнений десятки — служба за службой, с проверкой преподавателем.
{ Научиться чинить службы на курсе }Restart гасит и поднимает службу заново, обрывая её работу; reload просит перечитать конфигурацию на лету. Правило: поменял конфиг — пробуй reload; служба зависла — restart.
Active означает «процесс жив», а не «делает своё дело»: зависшая служба может числиться активной. Проверяй работу по существу — отвечает ли порт, пишется ли журнал — и навешивай мониторинг, который проверяет именно суть.
Написать простой unit-файл в /etc/systemd/system: секции Unit, Service с ExecStart и Install. Дальше daemon-reload и enable — и твой bash-скрипт становится полноценной службой с журналом.
ИП Апалин Владимир Александрович
ИНН 470517286143
ОГРНИП 323784700274393
Оставьте контакты — перезвоним и ответим.
Заявка отправлена. Скоро свяжемся.