понедельник, 13 декабря 2021 г.

Debian10. Собственный unit systemd. Запуск скрипта при загрузке системы

В Debian10 нет удобного файла /etc/rc.local, в который можно поместить скрипт, выполняемый при загрузке системы.
Лучший способ запустить скрипт при запуске - это сделать собственный юнит системы systemd.

Создаем файл
# touch /etc/systemd/system/detail-make.service
Прописываем в него минимально необходимую информацию:
#  nano /etc/systemd/system/detail-make.service 

Пример файла:

[Unit]
Description=detail_make_cikl
After=networking.target postgresql.target
[Service]
Type=simple
ExecStart=nohup /home/write_in_file_cikl.sh >/dev/null &
[Install]
WantedBy=multi-user.target


Делаем файл юнита исполняемым:
# chmod +x /etc/systemd/system/detail-make.service

#chmod 777 /home/write_in_file_cikl.sh

Рестартуем демон system:
# systemctl daemon-reload
Запускаем сервис:
# systemctl start detail-make.service
Включаем автозагрузку:
# systemctl enable detail-make.service
Статус сервиса можно посмотерть так:
# systemctl status detail-make

Debian10 Ошибка при установке программ. apt install. apt update.

Иногда в Debian10 при выполнении простой команды установки получаем ошибку

# apt install mc
<......>
Получено 2 834 kB за 1с (3 187 kB/s)
E: Не удалось получить http://deb.debian.org/debian/pool/main/g/glib2.0/libglib2.0-0_2.58.3-2+deb10u2_amd64.deb  404  Not Found [IP: 199.232.138.132 80]
E: Не удалось получить http://deb.debian.org/debian/pool/main/g/glib2.0/libglib2.0-data_2.58.3-2+deb10u2_all.deb  404  Not Found [IP: 199.232.138.132 80]
E: Не удалось получить некоторые архивы; возможно, нужно запустить apt-get update или попытаться повторить запуск с ключом --fix-missing?

С некоторой долей вероятности это происходит из-за того, что данные базы apt обновились
и теперь указывают на неверные ссылки в репозитарии.
Для исправления ситуации выполняем команду:
# apt update

И тогда все опять начинает корректно работать