Как мне запустить команду в соответствии с синтаксисом cron, оставаясь на переднем плане?

#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 . Существуют также различные сторонние библиотеки. Извините, что так долго не мог вам перезвонить.