• бетон Unix cron задолбал. В первую очередь — тем, что пока задание не закончилось, ничего про него не посмотришь.
    Не, ну есть варианты там с strace/gdb, но это всё та ещё развлекуха, вы понимаете.

    Шо нада: 1) Регулярные задания. И чтобы один раз после ребута, если пропущено.
    2) Зависимые и полузависимые задания. Чтобы, например, две таски последовательно — но если одна зависла (timeout) — и нет большой нагрузки — то можно параллельно.
    2.5) Ну, и чтобы один и тот жэ таск мог два раза параллельно не запускаться. Если, опять жэ, что-то там неуспел в прошлый раз.
    3) Авторепорт таймаутов.
    4) Управление через протокол какой-нибудь, а не как сейчас SIGHUPом и всем таким.
    5) И чтобы там всё прибивать вручную можно было ужэ работающее, а не только в лог пыриться.
    Жэлательно:
    6) установка лимитов/чрутов/цгрупп. Лучшэ, конечно, -помучавшысь- пре-exec скриптами.
    7) Перманентные задания. То есть постоянновисящие.
    8) socket activation. tcp4,udp4,unix domain.

    (и зачем мне после этого init или systemd?)
    ♡ recommended by @stanis

Replies (28)

  • @tzirechnoy, мб чем-то поможет tron он на питоне правда
  • @Magistr, Питон — это явный шоу-стоппер. Мне ещё падающего cron нехватало. А тем более initа.
  • @tzirechnoy, Чёто ты больше похожее на какой-нибудь дженкинс описал.
  • @tzirechnoy, точняк, лучше сегфолты и полный отказ хоста, в системде так и сделали!
  • @tzirechnoy, еще раз перечитал задачу, так и дженкинсом можно тасками управлять, там и крон умный и планирование с логированием
  • @Magistr, Можно подумать, но... jvm... Классическое приложэние... Её-моё.

    У меня вызывают подозрение такие базовые вещи, которые плохо ложатся в комп с 16M RAM. Но я подумаю.
  • @tzirechnoy, ty vsjo tak slozhno navertel chto etim poljzovacca budet nevozmozhno, pribegut pidarasy i predlozhat tbe ocherednuju OBJORTKU, ili skript kotoryj pishet skript kotoryj pishet skript dlja tvojego krona
  • @eugene-pnf, ja zadumyvalsja o JAZYKE opisanija zagruzki boljshix system 10 let nazad pod vdoxnovenijem ot soljarki. tvoji ideji zastavljajut snova ob etom dumatj. realjno nado ochenj fundamentaljnoje reshenije: kak opisatj sistemu celikom. chto v nej s chem zavisimo i kogo kogda zapuskatj
  • @eugene-pnf, Этот псто видел, кстати?
  • @tzirechnoy, Запускать пропущенное anacron умеет.
  • @eugene-pnf, Классический язык такого рода, кстати, называется JCL.
    Думаю, если соберусь писать этот топик — то выучить JCL будет, конечно, prerequisite.
  • @eugene-pnf, И да, что мне пидарасы? Пусть пишут. Они в любом случае что-нибудь напишут, какая мне разница, обёртку или подпорку?
    Мне для себя, по большому счёту.
  • @tzirechnoy, tut mimo probegal odin djadjka kotoryj pishet OS s mikrojadrom vysokim paralellizmom i procheimi pljushkami i xochet prodatj jejo kitajcam.
  • @eugene-pnf, vsju zhiznj kstate pishu skripty dlja krona toljko takim manerom chtoby ix mozno bylo beznakazanno vyzyvatj mnoro raz sverx mjery. a sostojanije sistemy ne uchityvalo i ne zaviselo ot kolichestva vyzovov.
  • @tzirechnoy,
    1) Регулярные задания. И чтобы один раз после ребута, если пропущено.
    2) Зависимые и полузависимые задания. 
    2.5) Ну, и чтобы один и тот жэ таск мог два раза параллельно не запускаться.
    Нет преграды патриотам. (c) ДМБ
    реализуется скриптами
    3) Авторепорт таймаутов.
    што?
    4) Управление через протокол какой-нибудь, а не как сейчас SIGHUPом и всем таким.
    это вообще не задача крона. задачи в крон добавляются, убираются штатно. коммуницирование с тобой запущеными процессами — твоё личное дело. фигачь сокет, пиши-читай, фигачь по http/snmp и т.д. крон тут не при чём, он не в курсе что и зачем ты запускаешь.
    5) И чтобы там всё прибивать вручную можно было ужэ работающее
    ps, grep, kill. Нет препятствий патриотам (с)
    6) установка лимитов/чрутов/цгрупп. 
    устанавливай. Нет препятствий патриотам (с)
    7) Перманентные задания. То есть постоянновисящие.
    называется daemon. к крону не имеет никакого отношения.
    8) socket activation.
    inetd

    Это ещё не спрашивали, что именно ты делать собрался. Есть мнение, что список хотелок сократится.
  • @eugene-pnf, Ну, либо у тебя задачи такие простые либо пишэшь ты так хорошо.
    А у меня — либо оно реально должно состояние системы менять (и тогда ему нужны блокировки, которые ты сам знаешь как в линукс-шэлле плохо работают), либо хотя бы LA можэт задрать в небеса.
  • @SolderStain,
    реализуется скриптами

    Ну да, кто-то помнится тэтрис на sed написал. Весь крон можно, конечно, написать на /bin/sh, но во-первых это будет монстр, во-вторых всё-таки оно будет тормозить систему.

    Скриптам нужны абстрактные надёжные высокоуровневые элементы для удобства скриптования. Одним из таких элементов и должэн быть такой пускатель.

    > 3) Авторепорт таймаутов.
    што?

    Чтобы о таске, превысившэм установленное время/io — сообщалось кудследует.

    это вообще не задача крона. задачи в крон добавляются, убираются штатно.

    Ну давай, покажы, как штатно добавить задачу в крон. А потом — как штатно убавить. Обёртки от дистрибутивов — развернуть до основы.

    называется daemon. к крону не имеет никакого отношения.

    daemon называется любое задание без взаимодействия с пользователем. Потому — и все кроновские. Искренне Ваш, КО.
    Знаешь, у тебя просто не мой уровень, мне не о чем с тобой говорить.
  • @tzirechnoy,
    Весь крон можно, конечно, написать на /bin/sh, но во-первых это будет монстр

    я не о кроне, я о скриптовании задач. как мне кажется ты функции задачи пытаешься приклеить крону.

    Чтобы о таске, превысившэм установленное время/io — сообщалось кудследует.
    а, вот что. это да, подписуюсь.

    Ну давай, покажы, как штатно добавить задачу в крон. А потом — как штатно убавить.

    crontab, /etc/cron.d итд + ps/grep/kill. про лимиты/cgroup сам сообразишь.

    Знаешь, у тебя просто не мой уровень, мне не о чем с тобой говорить.
    добро, не буду мешать зубрам.
  • @tzirechnoy, blokirovki velikolepno umejet delatj PostgreSQL. a v shelle u tebja jestj psql.
  • @eugene-pnf, c'mon, если у меня первый кандидат на этого чюда — мой десктоп, то второй — мой роутер с openwrt.
  • @tzirechnoy, router? on mog by mnogo poleznoj infy xranitj v postgrese s prelestjami transakcij i jedinstvnnoj v mire PRAVILJNO arifmetiki kalendarnyx dat
  • @eugene-pnf, Нет, не мог бы. Там 4M flash.
  • @eugene-pnf, И да, там есть hdd, и с него запускаются программы — но cron работает с flash, и это правильно, поскольку две трети задач, которые запиханы в cron — работают и без hdd вообще.
  • @eugene-pnf, Впрочем, нет, всё-таки 8Mflash. Это, в общем, не важно.
  • @tzirechnoy, da u menja jestj pretenzii k postgresu chto on negibok v vybore nositelja, trebujet fajlovuju sistemu i ne zhivjot celikom v RAM
  • @eugene-pnf, А у меня — нет. Мне там дажэ sqlite не нужэн, потому никаких претэнзий к постгрэссу у меня нет.
  • @tzirechnoy, ty prosto ne predstavljaesh kak pizdato kogda u tebja vsja pamjatj "transactional access" i vmesto bajtov objekty prikladnyx tipov
  • @eugene-pnf, Я предпочту, чтобы оно всё умещалось в 32M RAM.