Я пытаюсь использовать cron в одном из моих проектов, где мне нужно, чтобы какой-то флаг включался в течение определенного периода времени и отключил его снова. Флаг может находиться в файле или в общей памяти.Манипулирование выражениями CRON
Я довольно новичок в cron, но у меня появилась идея, что мы можем запланировать запуск cmd в любое конкретное время. Поэтому, если я хочу установить флаг, я могу написать программу для чтения файла или прикрепить к обновлению общей памяти флаг и закрыть его и выйти. Но проблема в том, что через X минут флаг должен быть снова отключен.
Я думал, что две работы cron для работы помогут. Мы можем запустить один и тот же cmd с разными аргументами, и я могу поменять флаг соответствующим образом. Это хороший подход?
Если это так; Я застрял в манипулировании данным выражением cron. Если у меня есть только exp, который меняет флаг в (периодическое) время начала и продолжительность, для которой флаг должен быть активным; есть ли способ эффективно добавить продолжительность (что угодно в днях/часах/минутах) к существующему cron exp и создать новый exp? Или мне нужно написать целую логику добавления и корректировки полей соответственно для ее достижения?
У меня есть компоненты, написанные на Java и C++, которые имеют доступ к этому cron exp. Так что делать это на любом языке для меня отлично. Прямо сейчас я пытаюсь на C++.
Если вы отключите команду через некоторое время - скажем, 10 минут, это означает, что вы хотите запустить программу только один раз в следующие 10 минут? Зачем тогда использовать работу cron? Почему бы вам не вызвать команду напрямую (возможно, в потоке в фоновом режиме) или использовать 'at', где вы можете сказать' сейчас + 5 минут'? –
Эту команду можно планировать также по периметру. Как начинать каждый первый день каждую неделю в 3 часа ночи и останавливаться в 5 утра. Что-то вроде того. – vpram86
Так это процесс сервера, который вам нужно остановить? Другие программы обычно запускаются и заканчиваются, когда они закончены. Если это так, вам понадобится две записи: одна для запуска, одна для остановки. –