#bash #cron
#bash #cron
Вопрос:
Я ищу способ запустить команду в соответствии с синтаксисом crontab, оставаясь на переднем плане.
Немного контекста: команда будет выполняться в контейнере docker. Пребывание на переднем плане предотвращает остановку контейнера. Я использую конвейер непрерывного развертывания, поэтому у меня нет доступа к системе (поэтому нет параметров запуска docker, нет таймера systemd, нет crontab). И, наконец, у container orchestrator нет параметров расписания.
Я думал об этих решениях, но они не полностью решают мою проблему:
watch
может занять только интервал времениwhile true : block sleep
обходной путь также занимает только временные интервалы- используйте
while true
скрипт и crontab внутри контейнера, но это может вызвать другие проблемы
Как я могу выполнить это таким образом, чтобы удовлетворить все мои потребности?
Комментарии:
1. Почему вы пытаетесь это сделать? watch уже делает это, и что-то должно контролировать порт просмотра, а случайная буква, напечатанная на переднем плане, не очень интуитивно понятна. Если вам нужно что-то отслеживать, лучше использовать системный журнал.
2. Команда будет запущена в контейнере docker. Пребывание на переднем плане предотвращает остановку контейнера. Я использую конвейер непрерывного развертывания, у меня нет доступа к параметрам запуска docker, а у orchestrator нет параметров расписания.
3. @LuoLeKe не комментируя эти нелепые ограничения, вы можете вместо этого использовать screen и запускать свою команду там. Или, если вы хотите быть еще более раздражающим, создавайте контейнер каждый раз, когда он должен выполняться.
4. Мне нужно запустить скрипт в очень определенном месте из-за проблем с безопасностью, и я не могу получить прямой доступ к системе, поэтому я не могу использовать screen. Второй вариант технически невозможен (если только не требуется сложный обходной путь).
5. Запоздало, docs.python.org/3/library/sched.html . Существуют также различные сторонние библиотеки. Извините, что так долго не мог вам перезвонить.