Re: Devuan (Was: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.)
On Tuesday 13 September 2016 04:21:01 Dmitrii Kashin wrote: > Victor Wagnerwrites: > > Можно предолжить эту систему проекту devuan или самому дистрибутив > > форкнуть. > > Кстати, вот интересный вопрос: кто-нибудь его уже поставил в качестве > основной системы? > > У меня всё руки не дойдут. На одной из машин я сейчас держу смешанную > систему, но я довыпендривался с репами и, похоже, придётся впервые за 6 > лет систему сносить и с нуля накатывать. Вот думаю: перебраться, что ли, > на devuan полностью, или опять держать смешанную систему debian/devuan? > > Суть в том, что в devuan в пылу выпиливания libsystemd0 много чего > выкинули из репозитория. Не то, чтобы жизненно необходимые вещи, но вот > потеря mpd лично мне не приятна очень. Привык я к нему. > > Поделитесь мнениями, пожалуйста. Стоит ли выделить одну из рабочих машин > под Devuan? Здравствуйте! У меня большая часть поддерживаемых линуксовых машин под Devuan - штук десять серверов, десятка два десктопов с Devuan и Trinity, всякие роутеры, есть даже экзотика на PowerPC. Все работает без особых нареканий. Раньше ставил Debian и переключался на Devuan, с выходом беты ставлю сразу Devuan. Так что однозначно советую. С уважением, Соловьев Юрий
Re: Devuan (Was: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.)
13 сентября 2016 г., 4:21 пользователь Dmitrii Kashinнаписал: > Victor Wagner writes: > >> Можно предолжить эту систему проекту devuan или самому дистрибутив >> форкнуть. > > Кстати, вот интересный вопрос: кто-нибудь его уже поставил в качестве > основной системы? На домашнем ноуте и на рабочем компе. Работает нормально, но у меня и потребностей особых нет. > Суть в том, что в devuan в пылу выпиливания libsystemd0 много чего > выкинули из репозитория. Не то, чтобы жизненно необходимые вещи, но вот > потеря mpd лично мне не приятна очень. Привык я к нему. Э... $ apt-cache policy mpd mpd: Установлен: (отсутствует) Кандидат: 1:0.19.9-dmo2 Таблица версий: 1:0.19.9-dmo2 0 500 http://www.deb-multimedia.org/ jessie/main amd64 Packages 0.19.1-1.1 0 500 http://packages.devuan.org/merged/ jessie/main amd64 Packages -100 http://httpredir.debian.org/debian/ jessie/main amd64 Packages Вроде никто никуда не выкидывал. При установке поставится libsystemd0, но для работы сам systemd не требуется. > Поделитесь мнениями, пожалуйста. Стоит ли выделить одну из рабочих машин > под Devuan? Стоит. Правда, мне пришлось для того, чтобы работал apt-file search, делать следующее: deb [targets=Translations] http://httpredir.debian.org/debian jessie main contrib non-free так как в merged репозитории не отдаются всякие Contents и т.п. Ну и на всякий случай : Package: * Pin: origin "httpredir.debian.org" Pin-Priority: -100 -- Stanislav
Re: Devuan (Was: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.)
13 сентября 2016 г., 6:21 пользователь Dmitrii Kashin написал: > > Кстати, вот интересный вопрос: кто-нибудь его уже поставил в качестве > основной системы? Да, на домашний ноут. Ранее стоял debian/testing. В devuan сломался переход в standby при закрытии крышки, при запуске руками работает. IMHO, это было завязано на systemd. > Поделитесь мнениями, пожалуйста. Стоит ли выделить одну из рабочих машин > под Devuan? Да.
Re: Devuan (Was: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.)
У меня стоит и на работе, и на ноутбуке (второй системой, первая Void), и до недавнего времени стояла на настольнике. Перешёл сразу же, как только в Дебиане по умолчанию начали поставлять systemd. Мне вполне сносно живётся, хотя и стоит смесь ceres (sid), ascii (testing) и jessie. Выбешивает разве то, что иногда траблы с обновлениями случаются (boost + mpi, например). Тут уже как душа желает. Можете попробовать. :) вторник, 13 сентября 2016 г. пользователь Dmitrii Kashin написал: > Victor Wagnerwrites: > >> Можно предолжить эту систему проекту devuan или самому дистрибутив >> форкнуть. > > Кстати, вот интересный вопрос: кто-нибудь его уже поставил в качестве > основной системы? > > У меня всё руки не дойдут. На одной из машин я сейчас держу смешанную > систему, но я довыпендривался с репами и, похоже, придётся впервые за 6 > лет систему сносить и с нуля накатывать. Вот думаю: перебраться, что ли, > на devuan полностью, или опять держать смешанную систему debian/devuan? > > Суть в том, что в devuan в пылу выпиливания libsystemd0 много чего > выкинули из репозитория. Не то, чтобы жизненно необходимые вещи, но вот > потеря mpd лично мне не приятна очень. Привык я к нему. > > Поделитесь мнениями, пожалуйста. Стоит ли выделить одну из рабочих машин > под Devuan? >
Devuan (Was: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.)
Victor Wagnerwrites: > Можно предолжить эту систему проекту devuan или самому дистрибутив > форкнуть. Кстати, вот интересный вопрос: кто-нибудь его уже поставил в качестве основной системы? У меня всё руки не дойдут. На одной из машин я сейчас держу смешанную систему, но я довыпендривался с репами и, похоже, придётся впервые за 6 лет систему сносить и с нуля накатывать. Вот думаю: перебраться, что ли, на devuan полностью, или опять держать смешанную систему debian/devuan? Суть в том, что в devuan в пылу выпиливания libsystemd0 много чего выкинули из репозитория. Не то, чтобы жизненно необходимые вещи, но вот потеря mpd лично мне не приятна очень. Привык я к нему. Поделитесь мнениями, пожалуйста. Стоит ли выделить одну из рабочих машин под Devuan? signature.asc Description: PGP signature
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
On Wed, 31 Aug 2016 13:53:06 +0300 dimaswrote: > 2016-243 13:40 Victor Wagner wrote: > [...] > да мне кажется, проще сделать тулзу/скрипт, которая будет вызываться > один раз по хуку при установке (обновлении) пакета и генерить > инит-скрипт, чем править sysvinit и каждый раз интерпретировать init править не надо. init все равно делает только то, что вызывает внешний скрипт прописанный в inittab (интерпретатором которого традицонно делается /bin/sh, но никто не мешает прописать в первой строчке что-то другое). А вот генерировать автоматически скрипты для /bin/sh нельзя. Ни в коем случае. Каждого кто такое предлагает, следует заставить выучить наизусть и продекламировать с выражением на площади скрипт configure от какого-нибудь крупного проекта, например от postgresql, сгенерированный именно таким способом с помощью autoconf. Скрипты для /bin/sh следует писать только руками. И по этим рукам бить, если кто-то захочет сделать этот скрипт чрезмерно многофункциональным или чрезмерно переносимым. Тем более бесполезно пытаться генерировать автоматически шелловские скрипты, предназначенные для последующей правки админом вручную. А смысл init-скриптов именно таков, недаром они все помечены dpkg как конфигурационные файлы (а service-файлы от systemd, кстати, нет). Размер шелловского скрипта не должен превосходить где-то 80-100 строк. Все что больше следует писать на более строгих языках, позволяющих предотвратить больше ошибок. Шелловский скрипт должен быть обозримым и понятным, с максимально простым control flow, иначе это чревато ошибками, которые никакой компилятор не выловит. А многие современные init-скрипты даже без /lib/init/functions вплотную подошли к этому пределу безопасности. Поэтому исполлзовать вместо shell другой язык, менее универсальный и более высокоуровневый было бы осмысленно. Конечно, язык service-файлов плохой, страдает creaping featurism и вообще сдизайнен как все у Поттеринга. Но зато на нем есть готовая codebase. > и то же. тем более, править инит не это надо чтоб майнтейнер захотел, Можно предолжить эту систему проекту devuan или самому дистрибутив форкнуть. > принял правки и т.д., а приблуду-конвертер держи себе отдельным > пакетом, и никому она мешать не будет >
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
2016-243 13:40 Victor Wagnerwrote: > Поэтому в первом же письме я предлагал воспольноваться тактикой embrace > and extend - для нашего, правильного интерфейса сделать переходник > (интерпретатор), который позволит ему использовать service-файлы от > systemd. > > Ну и соответсвенно каждая система инициализации должна будет внутри > себя поддержать тем или иным образом этот интерфейс. > > Для sysvinit это просто - нужно только insserv подправить что при > генерации зависимостей умел не только читать LSB-style комментарии, но > и вызывать скрипт согласно протоколу. да мне кажется, проще сделать тулзу/скрипт, которая будет вызываться один раз по хуку при установке (обновлении) пакета и генерить инит-скрипт, чем править sysvinit и каждый раз интерпретировать одно и то же. тем более, править инит не это надо чтоб майнтейнер захотел, принял правки и т.д., а приблуду-конвертер держи себе отдельным пакетом, и никому она мешать не будет
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
On Tue, 30 Aug 2016 15:18:52 +0500 Stanislav Vlasovwrote: > 30 августа 2016 г., 13:26 пользователь Victor Wagner > написал: > > >> > Для конкретного случая можно специфицировать некое подмножество > >> > этого протокола. > >> > Например, вызов с параметрами start/stop/restart. > >> Если этот вызов для админа, а не для загрузки - не вижу проблем. > > > > Тут вопрос скорее в интерфейсе для мейнтейнера пакета, а не админа > > или > > Судя по первому сообщению темы, мейнтейнер вообще хочет писать только > под systemd, потому это дело либо админа, либо дополнений к системе > инициализации. Мейнтейнер сейчас вынужден оглядываться на существующую реальность. Большая часть дистрибутивов использует systemd. Поэтому в первом же письме я предлагал воспольноваться тактикой embrace and extend - для нашего, правильного интерфейса сделать переходник (интерпретатор), который позволит ему использовать service-файлы от systemd. Ну и соответсвенно каждая система инициализации должна будет внутри себя поддержать тем или иным образом этот интерфейс. Для sysvinit это просто - нужно только insserv подправить что при генерации зависимостей умел не только читать LSB-style комментарии, но и вызывать скрипт согласно протоколу. Вернее скорее всего в обратном порядке - сначала позвать с параметром depends, если выругалось что такого параметра не знает, попробовать почитать, вдруг там LSB-style комментарии. Во сколько обойдется поддержка этого интерфейса других системах инициализации, сходу сказать не могу. Поскольку глубоко в них не копался.
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
On Tue, 30 Aug 2016 12:03:52 +0300 Dmitrii Kashinwrote: > Victor Wagner writes: > > > On Tue, 30 Aug 2016 10:29:53 +0500 > > Stanislav Vlasov wrote: > > > >> > > А уже потом, специфицировав этот протокол, делаем интерпретаторы для > > существующих декларативных конифгов и врапперы для прочих случаев, > > поддерживающие этот протокол. > > Я тут хотел бы также вклиниться, ибо уже не раз встречал что-то > подобное. Важно, чтобы этот интерфейс был на интерпретируемом языке. Я > слышал, что раньше было можно вместо init-скрипта подставить просто > бинарный файл, поддерживал бы он только необходимый набор аргументов > типа start/stop/etc... Имхо это конечно возможность интересная, но для > системного администратора совершенно негодно, ибо одно дело - > переписать скрипт на живой системе, и совсем другое - пересобрать > бинарь, выполняющий ту же функцию. А вот не нужно пересобирать бинарь. Надо скриптовый враппер вокруг него написать, если приспичило организовать нестандартное поведение. Бинарь он пришел из пакета находится под управлением пакетного менеджера и изменение его хэшсуммы - это security alert. Но 95% юзеров не нужно от демона ничего, чего не предоставляет бинарь. Собственно, на самом деле sysvinit начал проигрывать тогда, когда в среднем внутри оказалось аж три уровня врапперов - сначала start-stop-daemon запускает собственно бинарь, потом start-stop-daemon мы оборачиваем в стандартные функции из /lib/init/functions, а потом уже из этих функций собираем стандартный скрипт. Три уровня, это, конечно, слишком много. Но один иногда бывает нужен. Проблема сущесвующих init-скриптов в том, что каждый уровень имеет разный интерфейс и произвольно выкинуть один-два из них получается не всегда. А вот сделать обертку, которая вызывается с параметрами start/stop/depends/reload и сама вызывает бинарник с теми же параметрами, выполняя на каждый из них какие-то предварительные (или наоборот) действия - это несложно. > В этом плане я, по-видимому, являюсь сторонником LSB-заголовков в > sysvinit, поскольку они принуждают мейнтейнера использовать > скриптовые запускалки. Принуждать - нехорошо. А симлинк в /etc/init.d на файлик из /usr/sbin - хорошо. Для тех 95% админов, которым не нужно от демона странного, а нужно стандартное поведение. Принуждение к использованию определенного языка (любого) приводит к тому, что вместо одного простого и понятного скрипта наворачивается несколько оберток с несовместимыми интерфейсам и неудобочиаемыми исхдониками.
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
30 августа 2016 г., 13:26 пользователь Victor Wagnerнаписал: >> > Для конкретного случая можно специфицировать некое подмножество >> > этого протокола. >> > Например, вызов с параметрами start/stop/restart. >> Если этот вызов для админа, а не для загрузки - не вижу проблем. > > Тут вопрос скорее в интерфейсе для мейнтейнера пакета, а не админа или Судя по первому сообщению темы, мейнтейнер вообще хочет писать только под systemd, потому это дело либо админа, либо дополнений к системе инициализации. > системы инициализации. В смысле, если предоставишь исполняемый > файл с вот таким интерфейсом - при вызове с параметром start делает то, > stop се, depends это, то система инициализации этот файл подхватит и > будет через него демоном управлять. > > А уже потом, специфицировав этот протокол, делаем интерпретаторы для > существующих декларативных конифгов и врапперы для прочих случаев, > поддерживающие этот протокол. Для sysvinit я подобное ещё представляю. С другими init могут быть проблемы. >> > И еще нужен протокол для работы с зависимостями. Нечто аналогичное >> > LSB comments, но только встроенное в стандартный юниксовый >> > протокол. >> Как вариант - проверка наличия работающих зависимостей. >> Возможно, автозапуск при старте, но это может быть спорно. > Вот по-моему главное - это способ рассказать системе инициализации чего > нам нужно. А в каком порядке что из этого запускать - пусть сама > разбирается. На то есть startpar, хотя я и считаю его лишней сущностью, > вместо которой надо make использовать. Хм... Сложный вопрос, так как у системы инициализации может просто не быть такого интерфейса в удобном виде. Просто набор сервисов, которые требуется запустить в любом порядке + внутри запускаемого конфига сервиса - команда на запуск зависимостей из других сервисов. При этом оно _не_ совместимо с тем, что обычно лежит в /etc/init.d и может не предоставлять совместимый интерфейс в данном каталоге, а если и предоставляет, то не использует это внутри себя. -- Stanislav
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
Victor Wagnerwrites: > On Tue, 30 Aug 2016 10:29:53 +0500 > Stanislav Vlasov wrote: > >> >> > Для конкретного случая можно специфицировать некое подмножество >> > этого протокола. >> >> > Например, вызов с параметрами start/stop/restart. >> >> Если этот вызов для админа, а не для загрузки - не вижу проблем. > > Тут вопрос скорее в интерфейсе для мейнтейнера пакета, а не админа или > системы инициализации. В смысле, если предоставишь исполняемый > файл с вот таким интерфейсом - при вызове с параметром start делает то, > stop се, depends это, то система инициализации этот файл подхватит и > будет через него демоном управлять. > > А уже потом, специфицировав этот протокол, делаем интерпретаторы для > существующих декларативных конифгов и врапперы для прочих случаев, > поддерживающие этот протокол. Я тут хотел бы также вклиниться, ибо уже не раз встречал что-то подобное. Важно, чтобы этот интерфейс был на интерпретируемом языке. Я слышал, что раньше было можно вместо init-скрипта подставить просто бинарный файл, поддерживал бы он только необходимый набор аргументов типа start/stop/etc... Имхо это конечно возможность интересная, но для системного администратора совершенно негодно, ибо одно дело - переписать скрипт на живой системе, и совсем другое - пересобрать бинарь, выполняющий ту же функцию. В этом плане я, по-видимому, являюсь сторонником LSB-заголовков в sysvinit, поскольку они принуждают мейнтейнера использовать скриптовые запускалки. signature.asc Description: PGP signature
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
2016-243 11:26 Victor Wagnerwrote: > Тут вопрос скорее в интерфейсе для мейнтейнера пакета, а не админа или > системы инициализации. В смысле, если предоставишь исполняемый > файл с вот таким интерфейсом - при вызове с параметром start делает то, > stop се, depends это, то система инициализации этот файл подхватит и > будет через него демоном управлять. > > А уже потом, специфицировав этот протокол, делаем интерпретаторы для > существующих декларативных конифгов и врапперы для прочих случаев, > поддерживающие этот протокол. это все хорошо, пока демон запускается/останавливается на уровне простейших действий: запустить указанный бинарник, пид-файл покласть туда-то, уйти в фон и не отсвечивать. такому можно и /etc/init.d/skeleton подсунуть, указав только, кого и откуда запущать. и как раз такие случаи приводили в пример свидетили шыштемдэ, когда кричали, что вот, у нас все запускается через простые текстовые "юниты" без всяких там шелл-скриптов. но как только появляются какие-то другие действия при загрузке - создать какую-то помойку, убрать за собой при запуске, запустить еще какие-то вспомогательные сервисы, etc - вернулись к тому же, что с такой помпой "закапывали" - к шелл-скриптам)) а еще в /etc/init.d полно всякой фигни, которая не является демонами как таковыми, но вполне себе Provides, Depends и прочия - всякие там mount*, checkroot и иже с ними. там чистая шелл-лапша, куда без нее. или что с ними делать? переписывать на сях, чтоб был непременно бинарник? запихивать все в общую помойку системы инициализации? и если что-то там понадобится подправить, то пересобирать-перекомпилять? я не в курсе, как там в шыштемдэ реализованы все эти fsck и прочее - запихано в и без того жЫрный pid 1? и как это унифицировать без "шелл-лапши" - тоже не очень представляю...
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
On Tue, 30 Aug 2016 10:29:53 +0500 Stanislav Vlasovwrote: > > > Для конкретного случая можно специфицировать некое подмножество > > этого протокола. > > > Например, вызов с параметрами start/stop/restart. > > Если этот вызов для админа, а не для загрузки - не вижу проблем. Тут вопрос скорее в интерфейсе для мейнтейнера пакета, а не админа или системы инициализации. В смысле, если предоставишь исполняемый файл с вот таким интерфейсом - при вызове с параметром start делает то, stop се, depends это, то система инициализации этот файл подхватит и будет через него демоном управлять. А уже потом, специфицировав этот протокол, делаем интерпретаторы для существующих декларативных конифгов и врапперы для прочих случаев, поддерживающие этот протокол. > > И еще нужен протокол для работы с зависимостями. Нечто аналогичное > > LSB comments, но только встроенное в стандартный юниксовый > > протокол. > > Как вариант - проверка наличия работающих зависимостей. > Возможно, автозапуск при старте, но это может быть спорно. Вот по-моему главное - это способ рассказать системе инициализации чего нам нужно. А в каком порядке что из этого запускать - пусть сама разбирается. На то есть startpar, хотя я и считаю его лишней сущностью, вместо которой надо make использовать. > > > Вообще этот вопрос у меня в ЖЖ примерно два года назад уже > > обсуждался. > > > > http://vitus-wagner.livejournal.com/1032172.html > > Видел, но там, помнится, до чего-то конкретного не дошло, только > обсуждения преимуществ/недостатков разных подходов инитов. > Главное, там было уже вспомнено и перечислено много подводных камней, про которые очень легко забыть.
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
29 августа 2016 г., 22:43 пользователь Victor Wagnerнаписал: >> > Может быть стоит пойти по другому пути - embrace and extend - >> > написать интерпретатор service-файлов systemd, который бы не >> > выпендривался а вел себя примерно как start-stop-daemon. >> >> Я бы сказал, в том числе как start-stop-daemon. >> Скажем, иногда очень удобен runit, в котором демонов лучше запускать в >> скрипте через exec. >> То есть, следует отделить интерпретацию и собственно методы запуска, >> чтобы данным скриптом можно было пользоваться не только для sysvinit. > > Именно это я и считаю unix way - когда основной способ разделения > системы на компоненты это вызов программы, которая общается с > вызывавшей через командную строку и стандартные каналы ввода-вывода. > Для конкретного случая можно специфицировать некое подмножество этого > протокола. > Например, вызов с параметрами start/stop/restart. Если этот вызов для админа, а не для загрузки - не вижу проблем. В том же runit достаточно сделать симлинк в /etc/init.d с нужным именем на /usr/bin/sv при наличии конфиг-каталога с таким же именем и получаем почти такой же интерфейс. Почти - потому что 1) другой формат вывода, 2) нет хелпа по параметрам (вероятно, стоит отметить как баг), 3) поведение в некоторых случаях немного отличается. > И еще нужен протокол для работы с зависимостями. Нечто аналогичное LSB > comments, но только встроенное в стандартный юниксовый протокол. Как вариант - проверка наличия работающих зависимостей. Возможно, автозапуск при старте, но это может быть спорно. >> > Чтобы можно было использовать service-файлы, которые будут >> > поддерживаться и фикситься мейнтейнерами в рамках системы sysvinit >> > основным преимуществом которой является минимизация функциональности >> > init и использование внешних программ для всего остального. >> >> В остальном - однозначно поддерживаю. Не скажу, что толку от меня >> будет много, но, если на работе опять будет какой-нибудь проект с >> новым софтом, который работает только под systemd - писать подобное >> просто придётся (у нас стандарт - sysvinit + runit для части >> сервисов). > Возможно, если речь идет об одном или двух демонах, проще вручную > перевести сервис-файл на какой-нибудь имеющийся в системе язык > программирования. Для одного двух демонов я ещё напишу скрипты. А вот для пары десятков уже будет геморрой. Как вариант - написать конвертор, что будет универсальней, хотя и хуже выглядеть. Какой-нибудь хук при установке пакета и при наличии данных для systemd - натравливать конвертор на них. Дальнейшие действия конвертора - зависят от того, какой инит указан текущим. Другой вариант - всё же написать интерпретатор, в котором для запуска будут использоваться разные методы в зависимости от init. К сожалению, иногда - чересчур разные... > Вообще этот вопрос у меня в ЖЖ примерно два года назад уже обсуждался. > > http://vitus-wagner.livejournal.com/1032172.html Видел, но там, помнится, до чего-то конкретного не дошло, только обсуждения преимуществ/недостатков разных подходов инитов. -- Stanislav
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
On Mon, 29 Aug 2016 19:06:08 +0500 Stanislav Vlasovwrote: > 29 августа 2016 г., 18:25 пользователь Victor Wagner > написал: > > > Может быть стоит пойти по другому пути - embrace and extend - > > написать интерпретатор service-файлов systemd, который бы не > > выпендривался а вел себя примерно как start-stop-daemon. > > Я бы сказал, в том числе как start-stop-daemon. > Скажем, иногда очень удобен runit, в котором демонов лучше запускать в > скрипте через exec. > То есть, следует отделить интерпретацию и собственно методы запуска, > чтобы данным скриптом можно было пользоваться не только для sysvinit. Именно это я и считаю unix way - когда основной способ разделения системы на компоненты это вызов программы, которая общается с вызывавшей через командную строку и стандартные каналы ввода-вывода. Для конкретного случая можно специфицировать некое подмножество этого протокола. Например, вызов с параметрами start/stop/restart. И еще нужен протокол для работы с зависимостями. Нечто аналогичное LSB comments, но только встроенное в стандартный юниксовый протокол. Вроде опции depends, которая выдает на stdout список того, от чего данный init-скрипт зависит (что должно быть запущено до него в случае dependency-based boot). > > Чтобы можно было использовать service-файлы, которые будут > > поддерживаться и фикситься мейнтейнерами в рамках системы sysvinit > > основным преимуществом которой является минимизация функциональности > > init и использование внешних программ для всего остального. > > В остальном - однозначно поддерживаю. Не скажу, что толку от меня > будет много, но, если на работе опять будет какой-нибудь проект с > новым софтом, который работает только под systemd - писать подобное > просто придётся (у нас стандарт - sysvinit + runit для части > сервисов). Возможно, если речь идет об одном или двух демонах, проще вручную перевести сервис-файл на какой-нибудь имеющийся в системе язык программирования. Вообще этот вопрос у меня в ЖЖ примерно два года назад уже обсуждался. http://vitus-wagner.livejournal.com/1032172.html -- Victor Wagner
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
29 августа 2016 г., 18:25 пользователь Victor Wagnerнаписал: > Может быть стоит пойти по другому пути - embrace and extend - написать > интерпретатор service-файлов systemd, который бы не выпендривался > а вел себя примерно как start-stop-daemon. Я бы сказал, в том числе как start-stop-daemon. Скажем, иногда очень удобен runit, в котором демонов лучше запускать в скрипте через exec. То есть, следует отделить интерпретацию и собственно методы запуска, чтобы данным скриптом можно было пользоваться не только для sysvinit. > Чтобы можно было использовать service-файлы, которые будут > поддерживаться и фикситься мейнтейнерами в рамках системы sysvinit > основным преимуществом которой является минимизация функциональности > init и использование внешних программ для всего остального. В остальном - однозначно поддерживаю. Не скажу, что толку от меня будет много, но, если на работе опять будет какой-нибудь проект с новым софтом, который работает только под systemd - писать подобное просто придётся (у нас стандарт - sysvinit + runit для части сервисов). -- Stanislav
Re: [debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
On Mon, 29 Aug 2016 16:03:48 +0300 Dmitrii Kashinwrote: > > Я хочу обратить внимание сообщества debian-russian на обсуждение[1] в > рассылке debian-devel инициативы сопровождающего пакет conntrackd > удалить скрипты инициализации sysvinit. > > Это важный прецедент, поскольку дело зашло уже так далеко, что > обсуждают чуть ли "а не внести ли нам правки в Policy, чтобы > мейнтейнеры могли по желанию выкидывать старый хлам из своих пакетов". Проблема в том, что уже сейчас в stretch в некоторых пакетах лежат неработоспособные скрипты, положенные туда "на отвяжись" Я тут недавно пытался сбэкпортить taskd, так его init-скрипт ухитрился запустить его так, чтобы он не смог создать себе pid-файл и поэтому не стартовал. Хотя фикс в общем тривиальный. При всех полезных свойствах sysvinit система инит-скриптов, которые пишутся на шелле с использованием объемистой внешний библиотеки /lib/lsb/init-functions сочетает все недостатки и традиционного подхода unix и новомодного подхода больших монолитных программ и библиотек с развесистыми API. Может быть стоит пойти по другому пути - embrace and extend - написать интерпретатор service-файлов systemd, который бы не выпендривался а вел себя примерно как start-stop-daemon. Чтобы можно было использовать service-файлы, которые будут поддерживаться и фикситься мейнтейнерами в рамках системы sysvinit основным преимуществом которой является минимизация функциональности init и использование внешних программ для всего остального.
[debian-devel] Обсуждение удаления sysvinit-скриптов из пакетов.
Я хочу обратить внимание сообщества debian-russian на обсуждение[1] в рассылке debian-devel инициативы сопровождающего пакет conntrackd удалить скрипты инициализации sysvinit. Это важный прецедент, поскольку дело зашло уже так далеко, что обсуждают чуть ли "а не внести ли нам правки в Policy, чтобы мейнтейнеры могли по желанию выкидывать старый хлам из своих пакетов". Вот небольшая информация для размышления: Основной аргумент мейнтейнера был "настало время дать sysvinit умереть"[4]. Расс Олбери, голосовавший в 2014м за Systemd как систему инициализации, высказался против удаления скриптов инициализации sysvinit из пакетов.[5] Ян Джексон в 2014м настаивал на том, что Systemd -- это система по умолчанию только для Jessie [2], Гарби уверил его в том, что решение ТехКоммитета отражает эту позицию тоже [3]. В этом сообщении[6] Роберт Эдмондс замечает, что удаление скрипта инициализации нарушает политику[7] Debian по поддержке сторонних систем инициализации. Я пишу это сюда постольку, поскольку тут есть люди, которые также, как и я, считают, что мы несколько продолбали в 2014м году возможность принять участие в дискуссии, и тем самым допустили весьма неприятные нам изменения в дистрибутиве. Пожалуйста, если Вы заинтересованы в сохранении поддержки sysvinit-скриптов в пакетах, примите участие в дискуссии. [1] https://lists.debian.org/debian-devel/2016/08/threads.html#00448 [2] https://lists.debian.org/debian-ctte/2014/02/msg00353.html [3] https://lists.debian.org/debian-ctte/2014/02/msg00361.html [4] https://lists.debian.org/debian-devel/2016/08/msg00456.html [5] https://lists.debian.org/debian-devel/2016/08/msg00451.html [6] https://lists.debian.org/debian-devel/2016/08/msg00450.html [7] https://www.debian.org/doc/debian-policy/ch-opersys.html#s-alternateinit signature.asc Description: PGP signature