Pull to refresh

Comments 10

systemd и upstart также поддерживают разовые задачи (Type=oneshot или task)

справедливости ради, runit тоже умеет одноразовые задачи.
В Stage 1? Я так понимаю, что речь шла об автоматическом разруливании зависимостей этих одноразовых задач, т.к. дальше по тексту шла фраза «с сохранением всей логики зависимостей». А этого в runit действительно в явном виде не предусмотрено, т.к. очень редко в этом есть острая необходимость.
и в stage1 тоже. вообще, я имел в виду скрипт finish, который в дире с джобом. ничто не мешает там вбить свою логику, вроде sv stop $name.
например, я делал так:
#!/bin/sh
name=`basename $(dirname $(pwd)/fake)` # ugly hack

/usr/bin/sv stop $name >/dev/null 2>/dev/null # silently stop runit job after single run
А можно узнать зачем так сложно получать имя текущей директории (`basename $(dirname $(pwd)/fake)`), почему не просто `basename $PWD`? Какой corner case, требующий этих извращений?
я же вроде написал, сделать джоб для ранита, который выполняется только один раз. в сочетании с runit-man весьма удобно.
Мне тоже интересно, почему name получается таким образом. Вопрос madkite подразумевает, что если при наличии простого способа выбран сложный, вероятно, есть какая-то неочевидная причина делать сложно. И такие вещи всегда полезно узнавать.
Это все-таки другое. Использовать инструмент не совсем по назначению, и нужно будет еще приделывать отметку и проверку того, что задача уже была выполнена. Для пары скриптов можно, а там где уже пара десятков — появляется путаница.
Острая необходимость мало в чем бывает, можно и вообще без init обойтись :) — из шелла фоновые процессы запустить. Дело не в том, что по другому вообще никак, а в том, что бывают неострые необходимости — чтобы было модульно, или чтобы выполнялось быстро, или чтобы логика работы показывалась четко и могла проверяться.
Тут уж на вкус и цвет — кому нравится что-то простое и понятное (типа runit) с минимум фитчей, но решающее из коробки 90% потребностей, а кому что-то навороченное (типа systemd), где предусмотрено всё что только можно.
Sign up to leave a comment.