Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Windows

Создание самостоятельной и длительной задачи : Windows

22.11.2024 18:35


09.02.2015 22:40
Уже где-то был вопрос по созданию задач в назначенных, но позвольте ее расширить.
Итак, в моем софте, который запускается назначенными заданиями с максимальными правами, умеет запускать cmd и отдавать ему что-то, есть необходимость создавать задачу по заливке бекапа на удаленный хост. С хостом могут быть проблемы, бекап может быть большой, поэтому необходимо создать задачу, которая будет :
а) работать до победного, т.е. до ребута или выполнения
б) отличаться от других задач, т.е. если я одну запустил сегодня, то смогу другую запустить завтра
в) не будет прицеплена к родителю, т.е. мой софт должен закрываться, а задача работать дальше
г) крайне желательно универсальное решение, т.е. XP-2012

есть какие-то идеи? т.е., грубо говоря, мой софт создал задачку, пнул что-то, это что-то заливает бекап до победного. Сама заливка и прочее - не проблема, проблема в самостоятельности и отцепленности задачи. Нельзя там что-то вроде start /min /nowait сделать?
09.02.2015 23:33
Что-то совсем стал плохо понимать.
Уточню вопрос - что, собственно, нужно сделать:
1) Создать задачу в планировщике с определёнными ключами и запустить её
2) Просто запустить процесс

А /nowait зачем?
А в общем случае - для запуска процесса - да,
Код:
Start "Заголовок окна" /min
10.02.2015 08:00
Я в прошлый раз привязывался к планировщику и зря, задачу мы так и не решили.
Проблема в том, что мне не пришел в голову способ "демонизировать" процесс, т.е. отцепить его от текущей оболочки без прерывания, если он консольный. Т.е. из планировщика закается джоб, надо из джоба запустить долгую задачу, после чего управление джобу вернуть и дать возможность ему завершиться.
Похоже, что задачу я решил еще вчера, просто негде было попробовать.
/nowait затем, что в NT и, кажется, 2000, по умолчанию поведение было /wait, т.е. это просто старые данные :)
10.02.2015 12:34
Если я правильно понимаю, то вот пример, как было у меня:
в oracle создан джоб для вызова pl/sql процедуры раз в сутки. Сама процедура генерит bash скрипт (у меня, например, это был вызов rman restore с условиями) и дёргает его через вызов внешних процедур. В bash прописываем в конце &, чтобы управление джобу отдать. Профит. При неудачном выполнении у меня мылил:
Код:
RMAN_RETVAL=$?
if [ $RMAN_RETVAL != 0 ] ; then
    mail -s "${HOSTNAME}: $0 rman exit error !!! " dba@domain.com < /u/oracle/logs/rman_restore.log
fi
...
З.Ы. Нет, неправильно понял всё таки. Условия работать до победы не соблюдены...
10.02.2015 13:01
Да, совсем неправильно понял, особенно, если на название раздела посмотреть :)
Часовой пояс GMT +3, время: 18:35.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.