Автозапуск Podman-контейнеров на Linux системах¶
С использованием systemd (не требуется вход в учетную запись):¶
После настройки, согласно инструкции:
-
Автозапуск будет происходить от имени пользователя (в данной инструкции имя пользователя - gamma)
-
Контейнеры будут запускаться при старте системы, без входа в учетную запись.
-
Для запуска и остановки контейнеров используются скрипты start_gamma.sh и stop_gamma.sh из дистрибутива. (в данном примере находятся в папке /home/scripts/)
Последовательность действий¶
-
Создайте целевую структуру каталогов
sudo mkdir -p /usr/local/bin/gamma/scripts/ -
Скопируйте скрипты из папки, далее используется путь /home/scripts
sudo cp /home/scripts/start_gamma.sh /usr/local/bin/gamma/scripts/sudo cp /home/scripts/stop_gamma.sh /usr/local/bin/gamma/scripts/Сделайте их исполняемыми:
sudo chmod +x /usr/local/bin/gamma/scripts/start_gamma.shsudo chmod +x /usr/local/bin/gamma/scripts/stop_gamma.sh -
Создайте папку для пользовательского systemd
mkdir -p ~/.config/systemd/user/ -
Создайте файл службы gamma-server.service
[Unit]
Description=Gamma server in Podman
Wants=network-online.target
After=network.target network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/gamma/scripts/start_gamma.sh
RemainAfterExit=true
ExecStop=/usr/local/bin/gamma/scripts/stop_gamma.sh
TimeoutStopSec=120
[Install]
WantedBy=default.target
Сохраните файл (Ctrl+O, Enter, Ctrl+X).
-
Перезапустите пользовательский экземпляр systemd
systemctl --user daemon-reexecsystemctl --user daemon-reload -
Включите автозапуск службы
systemctl --user enable gamma-server -
Включите linger для пользователя (один раз от root) Это позволяет systemd запускать пользовательские службы даже без входа пользователя.
sudo loginctl enable-linger <ваш_пользователь>Замените <ваш_пользователь> на ваше имя (например, gamma):
sudo loginctl enable-linger gamma -
Проверьте работу службы
systemctl --user start gamma-serversystemctl --user status gamma-server -
Перезагрузите систему и проверьте автозапуск
sudo rebootПосле загрузки:
systemctl --user status gamma-serverpodman ps
C использованием crontab (требуется вход в учетную запись):¶
После настройки, согласно инструкции:
-
Автозапуск будет происходить от имени пользователя (в данной инструкции имя пользователя - gamma)
-
Контейнеры будут запускаться только после входа в учетную запись.
-
Для запуска контейнеров используется скрипт start_gamma.sh из дистрибутива. (в данном примере находится в папке /home/scripts/)
Последовательность действий¶
-
Делаем скрипт исполняемым:
sudo chmod +x /home/scripts/start_gamma.sh -
Открываем файл /etc/crontab:
sudo nano /etc/crontab
-
Добавляем строку в конец файла:
@reboot gamma /home/scripts/start_gamma.sh -
Сохранение в Nano:
Нажмите Ctrl + O → сохранить
Нажмите Enter → подтвердить имя файла
Нажмите Ctrl + X → выйти из редактора