использовал jrei / systemd-ubuntu docker образ, я сделал контейнер. ref: https://hub.docker.com/r/jrei/systemd-ubuntu/dockerfile
Моя конечная цель - добавить новый сервис, используя systemctl, и запустить его при загрузке контейнера.
Итак, я выполнил 3 теста следующим образом.
excute / lib / systemd / systemd в sh файле
!/bin/bash
while true do
/lib/systemd/systemd
result=$(ps -ax|grep -v grep|grep systemd-journald)
if [ "${#result}" -ne 0 ]
then
systemctl daemon-reload
systemctl start gunicorn
systemctl enable gunicorn
break
else
echo "${#result}"
fi
done
результат: ошибка возникает
msg: пытаюсь работать как пользовательский экземпляр, но система не была загружена с помощью systemd.
добавить команду в docker -compose.yml
command:
- /bin/bash/
- /root/test.sh
результат: ошибка происходит
msg: попытка запустить как пользовательский экземпляр, но система не была загружена с помощью systemd.
пересобрать dockerfile на основе jrei / systemd-ubuntu
FROM jrei/systemd-ubuntu
COPY service/* /etc/systemd/system/
COPY test.sh /root/test.sh
RUN chmod +x /root/systemctl_cmd.sh
VOLUME [ "/sys/fs/cgroup" ]
ENTRYPOINT ["/root/systemctl_cmd.sh"]
результат: произошла ошибка
msg: попытка запустить как пользовательский экземпляр, но система не была загружена с systemd.
Даже у меня было проверить это 3 раза, я не смог найти никакой возможности.
Так что я надеюсь получить представление о том, как я могу выполнять команды выше. И я хочу знать, как я получаю информацию о состоянии загрузки системы. Я думаю, что если я выполню команду systemctl после завершения загрузки, она может работать.
любая идея или совет приветствуются.