Вы находитесь на странице: 1из 16

Пользователь

39,0 94,9

карма

рейтинг

6

86

0

4

Профиль

Публикации

Комментарии

Избранное

Подписчики

вчерав16:01

Администрирование SysV, Upstart, systemd в роли ассортимента граблей Debian/Ubuntu

Знаете,чемясейчасзанимаюсь?Пишустартовыескриптыдляsystemd,иэтоменябесит.

Вродебыкакмыберемоперационнуюсистемудлятого,чтобыэкономитьвремянатакихвещах.Вродекакпакеты

должныбылиоблегчитьнамжизнь.Весьмавозможно,чтомойвыбороперационнойсистемыбылплох,нодо

сегодняшнегодняжитьвобластиDebian/Ubuntuмнебыловполнекомфортно.

Сдругойстороны,«было»—этоусловность.Всемычастонаходимсявотносительномневеденииотносительно

того,какустроенанашаоперационнаясистема.Аоднаждыувидевкод/usr/sbin/serviceтыуженеможешь

развидетьего.Такжекакипользоватьсяэтиминструментом.

Наверное,нужновернутьсяобратно.Чтобыпонять,какмыоказалисьвтакойзадницесосмесьюSysVиsystemd,

приправленнойUpstart.

TL;DR:авторноетпоповодузоопаркаизSysV,UpstartиsystemdвсовременныхдистрибутивахDebian/Ubuntu.

SysV

Казалосьбы,чтоможетбытьпроще?Вдиректории/etc/init.d/находитсяфайлсименемслужбы,онотвечаетза

запускиостановку.Мыделаем/etc/init.d/servicestopили/etc/init.d/servicestartивсеработаетотлично.

Операционнаясистемаделаеттожесамое,тольковзависимостиотrunlevel,два—такдва,будупоследовательно

выполнятьсимлинкииз/etc/rc2.d,которыепосутисвоейведутк/etc/init.d,жизньпростаипрекрасна.Чтобы

управлятьпоследовательностьюдостаточноизменитьсортировкуфайловприпомощичисла.Естьутилиты,чтобы

автоматизироватьсозданиеэтихсимлинков.

Почемумынемоглиостатьсявтомместе?Потомучтосистемыизменились.Онистали,гм,сложными.

Во­первых,состояниесистемыранеебылопрактическимонолитным,асегодняможетбытьизменчивым.Бах—и

поUSBподключилисетевойадаптер.ПриТомпсонетакогонебыло!Надореагировать,т.е.уведомитьслужбыоб

этом,кого­топерезапустить,кого­тозапустить,кого­топогасить.

Во­вторых,SysVбылоглубокоплеватьнаинтимнуюжизньпрограмм.Онихзапускалнастарте,ноеслиутебя

что­тонеполучалось,тоэтобылитвоиличныепроблемы.Отлаживатьтакиевещи,кстати,практически

невозможно.Segmentationfault?Настоящиемужчиныпишутпрограммы,которыезапускаютсяспервогоразаине

сегфолтят,слабак.

В­третьих,структуразависимостейвSysVбыладостаточнопростая,чегоневсегдахватало.

В­четвертых,стартсистемынемогбытьпараллельным.Запускскриптовбылстрогопоследовательный.Этолегко

увидеть,еслипосмотретьнавремястартаOpenSUSE,например,лохматой12версии.

Правда,основнаяособенностьSysVбыланетольковпростоте.Спростотойприходилипроблемы.Например,если

уменякаждыйзапускскриптаstartилиstopотдельный,токакузнать,запущенапрограммаилинет?Ведьей

нужнопослатьсигналkill,абезPIDегопосылатьнекуда.

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

чтоделать,еслипрограммавылетеласsegmentationfault?Кратко:ничего,PIDнадопроверить,передтем,как

использовать.

Upstart

Мнекажется,чтопроблемыначалиськакразтут.Тоесть,стого,каксообществопринялоUpstart.Этоизадало

дальнейшийтон.Нопопорядку.

Upstartподдерживалсобытия.Онмогследитьиперезапускатьпрограммы.Онумелвыстраиватьзависимости.Ну

испараллельностьюунеготожебыловсевпорядке.

Кромеодной,огромнойбочкидегтя,окоторойяскажудальше,янепомнюникакихтолкомпретензийкUpstart.А

вотбочкойбылото,чторазработчикисофтаеговцеломпроигнорировали.

Почему?Янезнаю.Скореевсегопотому,чтосовместимостьсSysVбылаприоритетомдляUpstart.Поэтому

разработчикамничегоненужнобыломенять.

Витоге,несмотрянато,чтоUpstartцарствовалвUbuntu5летнапротяжениис2009до2014года,огромное

количествософтатакинеперешлонанего!

Соднойстороны,янемогувинитьвэтомтолькоразработчиков.Они,вконцеконцов,пишутпрограммы.Как

лучшезапускатьэтипрограммывсистеме—неихдело.ОднакоскриптыдляSysVонипишут.Хотитепримеров?

Посмотрите,начтопохожскриптзапускаpostfixвDebian.Этоткодмонструозен,онужасен,этожепросто

страшно.

Однакоещестрашнеето,чтомногиеадминистраторывообщеневидятинепонимаютразницы.Онипишут:

sudo service apache2 start

Исвятоверят,чтоapache2долженстартовать.Аргх,оннедолжен.Понимаете?Недолжен.Запуститсяутилита

/usr/bin/service,котораяприметсясострашнойсилойугадывать,какженужностартоватьэтуслужбу,апотом

передаствашупросьбуSysVилиUpstart.Еслисможетправильноугадать,ага.

serviceвообщенечастьпакетаUpstart.Оновообщенеоттуда,нокак­тоуживаетсявэтомвеселомкругу.Чтобы увеличитьколичествоада,некоторыеразработчикиделаютскрипты/etc/init.dссылающимисянаUpstart.Эдакий

уроборос,чтобыесливдругадминистраторизлесувышеливUbuntu16.04LTSнапишет

/etc/init.d/service restart

Чтобывсеработало.

ОтдельноследуетсказатьпроPID.UpstartненуженPIDвфайле.Почему?Потомучтолюбойзапущенныйим

процессостаетсяегодочерним.Есливдругонвылетит,тоUpstartобэтомузнает.Ипосколькукомандызапускаи

остановкитожепроходятчерезнего,тотутнетникакойпроблемы.

Однакокакбытьссервисами,которымнуженfork?Нудляначалаихнадоспросить,зачемимэто?Ведьвцелом,

forkприменялсявосновномдлятого,чтобыдетачнутьсяотстартовавшегоихпроцесса,новслучаесUpstartэто

делатьнезачем.Еслиунасумерinit,тоунасестьчутьбольшепроблем,чемнеработающийpostfix.

Дачтоужтам,сейчас,когда16.04LTSужездесь,какдумаете,припомощичегостартуетApache2?postfix?Еще

кучавсякого?SysV.

Правда,в16.04импомогаетsystemd.

systemd

Вцелом,мненравитсяsystemd,честно.Егологикамнегораздоприятнеетой,чтобылауUpstart.Правда,еслибы

ещеDebianвзялабыне215релиз,а218,тожитьбылобыещелучше,ночертсним,мыпереживемибез

командыedit,еслинадо.

Иsystemdможнодолгоругать,ноэтоужестандарт.Однакокаквыдумаете,чтоделаютразработчикисsystemd?

Восновномигнорируют.

Итак,чтопривнесsystemd?Генераторы!Тысячиих!

Кратко,еслиUpstartневыпендривался,апростоповторялповедениеSysV,тоsystemdдотакогонеопускается.

Онберетсуществующий/etc/init.d/serviceинаосновенегогенерируетскриптдляsystemd.Егопотомизапускает.

рестарттакогосервиса,мониторингстанетвашимлучшимбудильником.

Ида,выжепонимаете,чтоsystemdтемболеененуженPID,ноувы.Всообществеэтодосихпоростаетсятолком

непонятым.

Кразработчикам

Да,ребята,ясогласен,ещераз,запускпрограммынеестьвашазабота.Однакокто,какневы,лучшезнает,как

спроектироватьбеспроблемныйстарт?Ведьоднодело,есликомандастартавыглядиттак:

ExecStart=/usr/bin/control­bin start

Асовсемдругое,еслитак:

ExecStart=/usr/sbin/postfwd2 ­­file=/etc/postfwd/postfwd.cf ­­interface=127.0.0.1 ­­port=10040 ­­shortlog ­­summary =600 ­­cache=600 ­­cache­rbl­timeout=3600 ­­cleanup­requests=1200 ­­cleanup­rbls=1800 ­­cleanup­rates=1200 ­­user=p ostfwd ­­group=postfwd

Давайтеперестанемужеразмазыватьнастройкимежду/etc/config.confи/etc/default/service?

ДавайтеперестанемпытатьсяуправлятьстартомслужбыприпомощипараметраSTART=yesв/etc/default/service?

Нет,японимаю,что«xyes»смотритсяотличнойшуткой,нонадоелоуже!

Давайтеужерешим,чтоsystemd—онвезде.Ичтоподнегоможносмелоадаптироваться.

Ксамомусебе

Смирись,тряпка,иненой.Keepcalmandsystemd.

6,7k 45

   

карма

рейтинг

94,9

Рекламапомогаетподдерживатьиразвиватьнашисервисы Подробнее
Рекламапомогаетподдерживатьиразвиватьнашисервисы
Подробнее

Комментарии(106)

 7,6k  29  1 Комментарии(106) amarao 17августа2016в16:45  +6 

amarao 17августа2016в16:45

+6 

Тем,комукажется,чтоsystemdпросто,рекомендуюпосмотретьнасовременноеустройствоceph.Тамтемплейтыsystemd

дёргаюттриггерыupstart,которыеинстансируютдругиетемплейтыsystemd,которыевсвоюочередьдёргаютдругиетриггеры

udev,которые,всвоюочередь,дёргаютsystemd.

отлаживатьэто—одноудовольствие.

splav_asv 17августа2016в22:14   ⬆

АвдистрибутивахRHвсётакжезапутанно?

celebrate 17августа2016в23:42   ⬆ +1

celebrate 17августа2016в23:42   ⬆

+1 

+1 

УменяCephJewelнаCentos7,всенормальнозапускаетсяиостанавливается.SysVскриптовятамненаблюдал.

handicraftsman 17августа2016в23:49   ⬆

handicraftsman 17августа2016в23:49   ⬆

Костылямипопахивает…

Loki3000 17августа2016в17:24

+1 

+5 

ВзащитуSysVхочусказать,чтоонпредельнопростипонятенширочайшимслоямпользователей.Дажеполныеламеры,вроде меня,способнывкратчайшиесроки,припомощигугла,форумовистаршихтоварищейслепитьудобоваримыйскриптзапуска демона.Болеетого,достаточнопрозраченмеханизмработы:простопосмотревсодержимоекаталога,можнопонятьчтоикогда будетзапущено.Иконтрольныйвголову:этотскриптизжелудейиветокбудетбеспроблемноработатьгодами.Аесли перестанет,тоеговсостояниибудетпочинитьпрактическилюбой,ктонемногознакомслинуксом.

ВпротивовесжеSysV,чтобычто­тонастроитьвsystemd,нужноосвоитьмануална10страниц,всеэтиюнитысосвоими

конфигамиисинтаксисом,этотsystemctlснепонятнымипараметрами…янеадмин,мнененужнаэтаинформациянакаждый

день(кстати,сдаетсямнечтоадминамонатоженужнадалеконекаждыйдень),мнеразвпятьлетнадонастроитьзапуск

демонаизабытьпронего.Средствамифайловойсистемыэтосделатьмногопрощеипонятнее.

Вотличнодляменяsystemdненесетникакихудобств.Бытьможетпоэтомуегоимногиедругиеигнорируют?

prometheus_ru 17августа2016в17:27   ⬆

+3 

Прочитайтевнимательно.Бывает,чтоскриптынаSysVстартуют,однакоприложениепокакой­топричиневываливаетсяна

старте.Чтоделать?Японимаю,запуститьруками.Нобезрежимаконтроляирестартамногиесовременныеприложениятупо

неработаютнормально.

Мануална10страницосваиватьнанадо.Неадминудостаточнооднустатьюпрочитатьсбазисом.

Авотпроудобоваримыйскриптдлязапускадемона—гм,смотрячтосчитатьудобоваримостью.

Loki3000 17августа2016в17:46   ⬆

0 

Даяпрочитал.Да,бывает.Правда,вмоейпрактикеприложенияпадалиипризапускескриптомипризапускеруками,так

чтовсеэтодостаточнопростодиагностировалось.Видимопростосложныхслучаевнебыло.

Удобоваримый—этототкоторый,несмотрянавсюсвоюкривизну,выполняетвозложенныенанегофункции.

Неадминудостаточнооднустатьюпрочитатьсбазисом.

Эх,вашимибыустами…явотсейчаспочиталвводнуюстатью,посмотрелпримерывсвоейсистеме.Понялчтояпо

прежнемунеимеюпредставлениявкакомпорядкевсеэтозапускается…понялчтоесливотпрямосейчасянемного

уловиллогикуконструированиявсегоэтого,тогодспустямневсюпроцедуру(включаячтениевводнойстатьи)придется

начинатьсначала.

ВывстатьеспрашивалипочемувсетакдержатсязаSysV?Яответилпочемузанегодержусья.

khim 17августа2016в19:11   ⬆

Понялчтояпопрежнемунеимеюпредставлениявкакомпорядкевсеэтозапускается…

+2 

Апочемувысчитаетечтоестькакой­тоодинпорядокипочемувасэтовообщеволнует?

ВыкогдаMakefileпишитетожепытаетесьвычислитьвкакойпоследовательностифайлыбудуткомпилироваться?

Loki3000 18августа2016в00:02   ⬆

какой­тоодинпорядокипочемувасэтовообщеволнует?

0 

Почтив100%случаевневолнует.Ноямогусебепредставитьслучай,когданадозапуститькакой­нибудьусловный

торрент­клиент,которыйбудетработатьсфайламинасмонтированныхшарах.Мнекажетсялогичным,чтобы

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

Параллельноихможновыполнить,ноктопоручитсязарезультат?

grossws 18августа2016в00:21   ⬆ +1

grossws 18августа2016в00:21   ⬆

+1 

Идляэтоговsystemdестьзависимостимеждуunit'ами,чегофактическинетвrunit,которыйвсякиестранные

людиприводяткакальтернативуsystemd.

Указываете,длявашегоусловногоrtorrent.serviceRequires=media­share.mount+After=media­

share.mountивсёработает.Припопыткезапуститьrtorrent.serviceбудетмонитроватьсяшараиосновной

юнитбудетзапускатьсяпосле,припопыткеотмонтированияшарыбудетостанавливатьсясервис.

Loki3000 18августа2016в09:10   ⬆

0 

Япрямнезнаю,вывсекакбудтопридуриваетесь:)Перечитайтемойпервыйкомментарий:янеадминине хочуимбыть.Япростойпользователь.Иуменя,пользователя,пытаютсяотнятьпростойинструментидают взаменсложный.Иэтазаменамне,пользователю,никакихплюшекнесулит.Этокакусреднестатистического

водителяотнять5­ступенчатуюкоробкупередачидатьемувзамен25­ступенчатую.Ономожетиздоровоина

всякойспецтехникеявстречалнечтоподобное,нообычномуводителю­тоэтонафига?

VBKesha 17августа2016в17:46   ⬆ 0

VBKesha 17августа2016в17:46   ⬆

0



prometheus_ru 17августа2016в17:54   ⬆

0



Предположимприложениеупало,чтосделаетsystemd?

Проанализируетошибкускоторойупалоприложениеиисправитилитупоперезапуститснова?

Дляначала,узнает,почемуупало.Т.е.еслиегоостановиладмин,топерезапускатьненадо.

Еслиадминничегонеделал,априложениеушло,топерезапустит.Приложениеведетлог,причемsystemdпомогает

делатьэтовединомместе.Пустьадминпотомразбирается,почемуупалоичтослучилось.

Поверьте,эталогикаважнадлякритичныхсервисов.Допустимстоитувасpostfix,вкоторомнашласьошибка

критическая,котораяпозволяетповалитьегозлоумышленнику.Егоповалилиночью.Сработалмониторинг,выпошли

егоперезапускать.СsystemdонбудетперезапущенбезВас.

VBKesha 17августа2016в18:01   ⬆ 0 

VBKesha 17августа2016в18:01   ⬆

0 

Предположимчтоэтонеpostfixичтотослучилосьсданныминадискеисервисиззаэтогопадает.Апристартеон

жрётмногопроцессорноговремениисновападает.Витогеиззаsystemdлежатьвесьсервер,датакгораздолучше.

Адляпадучихсервисовнуможнорасписатьскрипткоторыйвиситвпамятиисамперезапускаетупавшийсервис.

Чтовсвоёвремяяиделалдляодногоигровогосервиса.

Яничегопротивsystemdнеимею,нояиминепользуюсь,однакоусложнениесистемыстартакогданеможешь

найти,где,чтоикакстартуетнерадует.

prometheus_ru 17августа2016в18:03   ⬆

0 

Нет,выможетеуказать,сколькоразпытатьсяперезапускать.Дефолтныхзначенийтипа5хватает.

Ачтоделать,еслиперезапускающийскриптвылетит?:)systemdестьinit,еслионвылетел,тоунасестьпроблема

поважнее.

Высовершенноправы,чтопроизошлоусложнениесистемыстарта.Нонеиз­заsystemd,апростопотому,что

жизньсталатакой.

жизньсталатакой. VBKesha 17августа2016в18:09   ⬆ 0 

VBKesha 17августа2016в18:09   ⬆

0 

>>Ачтоделать,еслиперезапускающийскриптвылетит?:)systemdестьinit,еслионвылетел,тоунасесть

проблемаповажнее.

Вотименноесливылетитмойскрипттовцеломжитьможноаеслиsystemdтодажизньсложней.

>>Высовершенноправы,чтопроизошлоусложнениесистемыстарта.Нонеиз­заsystemd,апростопотому,

чтожизньсталатакой.

ЯужемноголетсижунаOpenRCионпопрежнемуприребутепускаетмненужныедемоны.Изамноголеткак

ясэтимпознакомилсяничегонепоменялось.Всёкактопостарому.

Янезнаючтодолженбылрешитьsystemd,можетпоэтомуинепонимаюзачемон.

prometheus_ru 17августа2016в18:11   ⬆

+1 

Яжеещеразговорю,получаетсяяицовяице:мыпишемскрипт,которыйследитзаскриптом,который

следитзаскриптом.

Уавтораличнобылонесколькослучаев,когданастартесистемы/etc/init.d/servicestartотрабатывалос

ошибкой.Иникакнеперезапускалось.Ижизнь—боль:)

VBKesha 17августа2016в18:13   ⬆

VBKesha 17августа2016в18:13   ⬆

Ждемкогдаэтослучитсясsystemdибольвернется.

4144 18августа2016в00:50   ⬆

0

0





Удругихлюдейбылочтоименносаммонстробразныйsystemdпадал.Т.к.онслишкоммногоделаетвinit

процессе.

Икакможетпростойскриптнабашеупасть,ичтобынеупалinitидругиепроцессы?

crlam0 17августа2016в22:36   ⬆ +1 

crlam0 17августа2016в22:36   ⬆

+1 

Оченьжаль,чтоOpenRCпрактическинигдекромеGentooипроизводныхнепыталисьиспользовать:(А

ведьвнейреализованаиработасзависимостями,ипараллельныйзапуск(насколькопомню,втестовом

режиме,нотемнеменее),аглавноевесьмапростыеилогичныескриптызапуска.Дажеконтейнерыможно

снейзапускать.Да,посравнениюсSystemDнетработысcgroups,нетотслеживаниязапущенных

процессов,нозатоэтоинетакойкомбайн,включающийвсебяоченьмноготого,чтоимхоксистеме

инициализацииотношенияилинеимеет,илиимеет,нооченьотдаленное.

kachsheev 18августа2016в00:25   ⬆ kachsheev 18августа2016в00:25   ⬆

0 

Впринципе,ничегонемешаетиспользоватьеёвdeb­basedдистрибутиве.Незнаюкаксейчас,но

раньшеонатамвполесносносправляласьсуправлениемдемонами.

crlam0 18августа2016в00:40   ⬆ 0 

crlam0 18августа2016в00:40   ⬆

0 

Явкурсе,такжекакивGentooничегонемешаетиспользоватьSystemD.Идажеболеетого:если

мненеизменяетпамять,вголосованиизановуюсистемуинициализациивDebianмелькалаOpenRC.

Нофактостаетсяфактом:вцеломнеплохоерешениеосталосьнишевым,этоипечалит.

quarckster 17августа2016в22:36   ⬆

ЯужемноголетсижунаOpenRCионпопрежнемуприребутепускаетмненужныедемоны.

Админулокалхостанаверноебольшеиненужно.

VBKesha 17августа2016в22:37   ⬆

VBKesha 17августа2016в22:37   ⬆

Далеконелокалхостановцеломбольшененужно.

zunkree 18августа2016в00:59   ⬆ +1

zunkree 18августа2016в00:59   ⬆

+1 

0 

+1 

Какразнавороченныефичиsystemdболеевостребованыналокалхостах,этоименнотамчасто

меняетсяконфигурацияоборудования,сетейисервисов.Всерверахвсемногоболеестабильнои

большинствофичейизбыточно.

UnixMaster 17августа2016в18:08   ⬆

+1 

Аразвепринаписание«юнита»systemdадминнеможетуказать,чтобыsystemdегонеперезапускал?

Специальнонеискал,нокакбудтобыможно.ЯтолькопаруразавтоматизировалстартJavaприложенийпод

systemdипроблемтамнеувидел,вотличиеотSysV.таместьпрактическивсе,простонужноправильноэто

испоьзовать.

испоьзовать. VBKesha 17августа2016в18:12   ⬆ +3

VBKesha 17августа2016в18:12   ⬆

+3 

Админленив,чтобычитатьмануалыкакрасписатьещёодинскриптдляещёоднойсистемыстарта,которая

моложечемаптаймегосервера.

khim 17августа2016в19:14   ⬆

+2 

Еслиадминхочетработатьтолькоссерврами,которыйбылизапущеныдопоявленияsystemd,топочему

еговообщеволнуетчтопроисходитвсовременныхдистрибутивахLinux?

UnixMaster 17августа2016в19:30   ⬆

0 

Видимопрограммистысамидолжныписатьскриптызапускадлясамописныхприложений(что

большинствоиделает),аадминыленивыеиконсервативные.Иневихинтересахотрыватьсяот

«важных»задач,чтобыидтивногусовременем.

VBKesha 17августа2016в22:43   ⬆ 0 

VBKesha 17августа2016в22:43   ⬆

0 

Linuxиспользуютнетолькоадмины.Онсейчасивembededраспространён.Ивоткогдапопадается

железканакоторойстоитsystemd(свежиечутьлинепоголовно)изадачастоитвырезатьвсёлишнее,и

сделатьстартмаксимальнобыстрым.Тотутприходитсяузнаватьчтоэтозахреньикакеёесть.Нуили

второйвариантinitизbusyboxипарупростыхскриптов.Чтобынедуматькакогохренавсётаки

запустилсяwpa­suplicantхотятыточноегоприбивал.

dartraiden 17августа2016в20:11

dartraiden 17августа2016в20:11(комментарийбылизменён)   ⬆

+5 

Еслиадминнехочетсяразвиваться,идтивногусовременем,ипоглядыватьнановыевеяния—этоего

выбор.Ноничегоудивительного,чтоэтопутькпрофессиональномузастоюсовсемивытекающими

последствиями.

Внекоторыепрофессиях(например,бухгалтерскоедело)безпостоянногоотслеживанияизмененийи

нововведенийвообщеработатьневозможно.Попробуйтев2016годувестибухучетпонормативам2000

года…

mrak_san 17августа2016в17:31

всесделанодлялюдей…

0 

inkvizitor68sl 17августа2016в17:40

–2 

prometheus_ru 17августа2016в17:43   ⬆

+1 

Всё,чтоядумаюоsystemdводнойкартинке—https://pbs.twimg.com/media/ChIcfpoXEAAPgFN.jpg

Выпривелиотличныйпримеруробороса.Авторпытаетсярестартоватьслужбуприпомощи/etc/init.d/service,чтопосути

работатьнедолжно.

Однаковсистемекто­тообэтомпобеспокоилсяисделалвелосипед/etc/init.d/service­>systemd,ночто­топошлонетак,

посколькунадосмотреть,какнаписан.service­файл.

inkvizitor68sl 17августа2016в17:48(комментарийбылизменён)   ⬆

>чтопосутиработатьнедолжно.

Вообщеотношениякделунеимеет.

root@libra:~#systemctlstartrsync

root@libra:~#echo$?

0

root@libra:~#telnetlocalhost873

Trying::1…

Trying127.0.0.1…

telnet:Unabletoconnecttoremotehost:Connectionrefused

–2 

Полагатьсянаsystemdнельзя.УнегодажепринесоблюденииConditionPathExists«всёхорошо,явсёзапустил, наслаждайтесь». Можетидея­товбазеуsystemdихорошая,нонаписаноннастолькокорявоинастольконелогично,чтопрощепохоронить

(чтоислучитсялетчерез5),чемтратитьвремянаразбирательства.

prometheus_ru 17августа2016в17:55   ⬆

+2 

systemctlcatrsyncвстудию,покажите.Дляначаларазберемся,каконозапускается.Но/etc/init.d/serviceсsystemdнадо

забыть.

inkvizitor68sl 17августа2016в18:12   ⬆

0 

root@libra:~# systemctl cat rsync # /lib/systemd/system/rsync.service [Unit] Description=fast remote file copy program daemon ConditionPathExists=/etc/rsyncd.conf

[Service] ExecStart=/usr/bin/rsync ­­daemon ­­no­detach

[Install]

WantedBy=multi­user.target

Сразупокосякам.

­­daemon—азачем?Кактолькооноделаетforkиотваливаетсяпотом,systemdнеможетгарантировать,чтовсе

хорошо.Type=неуказано,поэтомуsystemdсчитает,чтоэтоsimple.

1.ЯбыпопробовалдобавитьType=forkingвсекциюService.

2.Уrsyncоченьособоепониманиетого,каконозапущено.­­daemonобозначаетнепростоfork,аещепояснение,

чтоrsyncзапускаетсянеизподinetd.Интересарадиябыпопробовалбыещевоттак:

[Service]

Type=simple

ExecStart=/usr/bin/rsync

inkvizitor68sl 17августа2016в18:36   ⬆

0 

Type=simple Type=forking ExecStart=/usr/bin/rsync ­­no­detach ­­daemon

Type=simple ExecStart=/usr/bin/rsync ­­no­detach ­­daemon

Type=simple ExecStart=/usr/bin/rsync ­­no­detach

Type=simple

ExecStart=/usr/bin/rsync

Вовсехслучаях:

root@libra:~#systemctlstartrsync;echo$?

0

Anyway,какуюбычушьянеписалв[service],повторюсь—ConditionPathExists=/etc/rsyncd.confнеработает.

Файланет,systemctlвозвращает0(пытаетсязапуститьrsync),хотядаженедолженпытаться.

prometheus_ru 17августа2016в18:39   ⬆

0 

Он,судяповсему,непытается.Издокументацииследует,чтоеслиэтапроверкафейлится,тоsystemd

делаетвид,чтовсехорошоинепереводитunitврежимfailed.

Beforestartingaunit,verifythatthespecifiedconditionistrue.Ifitisnottrue,thestartingoftheunitwillbe

(mostlysilently)skipped,howeverallorderingdependenciesofitarestillrespected.Afailingconditionwillnot

resultintheunitbeingmovedintoafailurestate.

inkvizitor68sl 17августа2016в18:42   ⬆

0 

Яиговорю—кчертуэтонелогичноеподелиененужно.Поэтомуниктоинеторопитсяпереезжать.

prometheus_ru 17августа2016в18:44   ⬆

+2 

Таклогичноже,юнитвпорядке,онбезошибок,простонесконфигурировансейчас.Поэтомуине

запустился.

Янепонимаю,чтоздесьнелогичного?

inkvizitor68sl 17августа2016в18:57   ⬆

Пользователюсообщитьобстоит,вестимо?

+2 

bobelev 17августа2016в18:39   ⬆

0



Ачтопишетsystemctl status rsync?

 
 

inkvizitor68sl 17августа2016в18:40   ⬆

0



●rsync.service—fastremotefilecopyprogramdaemon

 

Loaded:loaded(/lib/systemd/system/rsync.service;disabled)

Active:inactive(dead)

prometheus_ru 17августа2016в18:41   ⬆

0



Вашкомментнижеподтверждает,чтовсеименнотак,каквдокументации:)

inkvizitor68sl 17августа2016в18:42   ⬆

–2 

Воттолькоприложениенезапустилось,аяобэтомничегонеузнал.Ачтотамвдокументации—мнев

целомнаплевать,какпользователю;)

masai 17августа2016в21:28   ⬆

0 

Еслихотите,чтобынезапускалось,тоиспользуйтеAssertPathExists=вместо

ConditionPathExists=.Илиянеправильнопонимаюсутьпроблемы?

UnixMaster 17августа2016в19:37(комментарийбылизменён)   ⬆

+1 

Давсеработает­>вопроснаstackoverflow

Итогда:

[Unit] Description=fast remote file copy program daemon

ConditionPathExists=!/etc/rsyncd.conf1

[Service] ExecStart=/usr/bin/rsync ­­daemon ­­no­detach Environment=SYSTEMD_LOG_LEVEL=debug Type=forking

[Install]

WantedBy=multi­user.target

Видимрезультат:

[root@laptop system]# systemctl start rsync

Job for rsync.service failed because the control process exited with error code. See "systemctl status rsync.service" and "journalctl ­xe" for details. [root@laptop system]# echo $?

1

[root@laptop system]#

Да,можносказать,чтоэтокостыль.Яспоритьнебуду)))

Laney1 17августа2016в20:16   ⬆

+3 

мнекажется,тутвиноватнеsystemd,авы,потомунечитаетедокументацию.Еслихотитеполучатьошибкуприотсутствующем

файлеrsyncd.conf,тонадопрописатьне«ConditionPathExists»,а«AssertPathExists».

inkvizitor68sl 17августа2016в20:32   ⬆

–1 

Этодефолтныйunitиздебиана,яегонеписал.

Еслиосновныемейнтейнерыдебиана(аrsync—одинизcore­пакетов)ошибаютсявэтоминструменте,чегождатьот

обычныхлюдей,которыедокичитаютвсегдаподиагонали?

Laney1 17августа2016в20:51   ⬆

+1 

откудавызнаете,чтоэтоошибкамейнтейнера?Вполневозможно,чтоегоожиданияпростонесовпалисвашими.В

любомслучае,systemdтутнепричем.

Кстати,ятожесчитаюсебяобычнымчеловеком,никогданеадминившимничегокрупнеесвоегоноутбукаиписавшим

дляsystemdтолькопростейшиезапускалкивсякихwebpack­ов,чтобыихвыводнезабивалконсоль.Однакомнехватило

двухминутгугления,чтобыразобраться,вчемтутдело.Такчтоэтонебогвестькакаяпроблема.

Balek 17августа2016в21:02   ⬆

+6 

Еслиосновныемейнтейнерыдебиананесправляютсяснаписанием7строкконфига,токакможноотнихожидать,что

онисправятсяснаписаниемскриптанасотнистрок?Хотя,намойвзгляд,сзадачейонисправилисьнаотлично.rsync

работаетнетольковсерверном,ноивклиентскомрежиме.Зачемвамвлогахлишняяошибкапризагрузке,еслиrsync

установлентолькодляклиентскогорежима?Кактольковысоздатитеконфигдемона,сервисначнетстартовать.Что

можетбытьлогичнее,непредставляю.

Prototik 18августа2016в00:05   ⬆ 0

Prototik 18августа2016в00:05   ⬆

0 

Демон,всё­таки,долженбытьзапущенявно(systemctlenablersyncd),этотюнитиздебианадействительнонемного

корявый,какпомне.ЛибозаменитьConditionнаAssert,либоубратьегокчертямсобачим—сервисвлюбомслучае

завалится.

cyberdimk 17августа2016в18:49

–2 

домашнийадмин—нароутереhardenedgentoo(безSE)нарабочейдизайнерскоймашинепростоgentooсopen­rc—

приложениязапускаются,засетьспокоен,да—нетгнома3ипрочей«графы»,xfceустраивает…безsystemd.

ITLav 17августа2016в19:32

Естьтакаяштука—EPM

помимоуправленияпакетами,таместькомандаserv,которая

обеспечиваетуправлениесервисамивнезависимостиотсистемы.

Возможно,этото,чтовыискали.

dmitry_ch 18августа2016в01:29   ⬆

Интересно,спасибо!

0 

+1 

НовотсмотрюянаEPM,вижу(ужеочередной)костыль,которыйсглаживаетострыеуглысинтаксисовипозволяетделать

многочегооднообразно.Ноприэтомсощущением,чтонадворе—2006год,атои1996.

Т.е.японимаю,чтонаписатьepm­i(package)логично,нопочемунельзябылонаписатьдлялюдейepminstall(package)—не

оченьпонимаю.Да,написать­iбыстрее,нозатосinstallменьшийшанспромахнутьсяпривводедовольноважной(иопасной,

постепенивлияниянасистему)команды.Приэтом«длинная»командасредиспискауправленияпакетамиесть,правда—

одна,аименноepmupgrade.Т.е.авторизложенноевышекак­топостиг,но«былоужепоздно»?

Зато,подозреваю,всеэтоупираетсявте«милые»мелочи,из­закоторыхкому­тонравится(аможет—и«нравится»)aptitude,

акому­тоyum.Получаемнаименьшийобщийзнаменатель,чтобывлюбойсистемесделатьнеобходимыйминимумопераций.

Тотфакт,чтоEPMневходитвсоставвсехдистрибутивовштатно(хотябычерезподключениерепозитария,кактотжеnginx),

чтоавтоматическидобавляетнекоторыевопросыпоповодуавтоматизацииустановкииобновленияего—никакнеулучшают

отношениеквозможностиегоиспользования.

Затосразумогуобратную«прелесть»назвать:имееммысвами,скажем,30серверов,на17изнихDebian,на13—Centos.

Вамнужнонавсехпоставитьодинаковыйсофт,дасзависимостями.Вродебыпишемпошпаргалке,epm­i,авотдальше нужноуказатьимяпакета,итутнаступаетвопрос—ономожетбытьразнымвразныхдистрибутивах.ЗапуститьтотжеApache

вDebinan—это/etc/init.d/apache2,вCentos—/etc/init.d/httpd.ИтутмылибодобавимвEPMтаблицусоответствия,что,мол,

приservapacheнасамомделедергаетсятотилиинойскриптзапускаапача,либоделаемвсвоихскриптахкучуветвлений—

итогденепонятно,зачемнамepmвролипрослойки.

Темболеечтоте,ктообслуживаютсервера,обычносидятнаодномкаком­тодистре(может,наразныхверсиях,ноужвезде пишутлибоaptitude,либоyum),ипроблема,чтолюдизабывают,чтожеписатьнаконкретноймашине—несамаянасущная.

Аесличеловекудосталосьнаследство,гдеесть«всегопонемножку»(давайтек30упомянутыммашинамдобавимеще

парочки«солярок»,инесколькоFreeBSDразныхверсий)—тоEPMлибонеосилит,либостанетумнеенассвами,истанет

пониматьчеловеческуюречь,что­товроде«epmapachewon'tstart,pleasefixit»))

ITLav 18августа2016в05:30   ⬆

0 

Еслиназываетеочереднымкостылём,поделитесь,какиебылиещё,яневидел.

>почемунельзябылонаписатьдлялюдейepminstall

epmподдерживаетвсепривычныеварианты,длялюдей,имеющихопытработыслюбымПМ.Этовидноввыводеepm­­

help

Так,установитьпакетможнокомандамиepmi,epm­i,epminstall.

СитуациюсвхождениемEPMвдистрибутивыисправим,есливэтомвидитсясмысл.

Проразныеназванияпакетовисервисоввыправы.Ноэтопростоещёнедоделаннаячасть.И,всёже,epmдлялюдейв

первуюочередь,авовторуюдляскриптов.

>те,ктообслуживаютсервера,обычносидятнаодномкаком­тодистре

Мнеимоимскриптамприходитсяобслуживатьнесколькодесятковдистрибутив,такчтояпонимаюэтихлюдей.

>добавимещепарочки«солярок»,инесколькоFreeBSDразныхверсий

Навсякийскажу,чтоepmработаетинаSolaris,инаFreeBSD,инаOpenWRT,инемногонанаMacOSиAndroid.

Посутиважнаяпроблемаодна—названия.Итутяждусовета.

prometheus_ru 18августа2016в11:15   ⬆

0 

Спасибозассылку.Увы,неуверен,посколькуяпредпочитаюавтоматизироватьсячерезchefииспользоватьвсе­таки

нативныеинструменты.

Посути,какгениальнонепиши,нополучитсяещеодинбинарь/usr/sbin/service,которыйдолжензаменячто­тосделать.Яне

вижувэтомособогосмысла,посколькупредпочитаюобщатьсясsystemd,например,самостоятельно.

Проустановкупакетовещехитрее.Насегоднянеавтоматизироватьсвоюработуможеттолькоадмин,укоторогомного

свободноговремени.Уменяпроцентовна70%продработаетизChef,поэтомуяитакужеговорю«Chef,мнетутпакеты

накатить,разбирайсякак».

Нозассылкуещеразспасибо,интересно.

k0ldbl00d 17августа2016в20:12

k0ldbl00d 17августа2016в20:12(комментарийбылизменён)

+1

Витоге,несмотрянато,чтоUpstartцарствовалвUbuntu5летнапротяжениис2009до2014года,огромноеколичествософта

такинеперешлонанего!

Этогонеслучилось,какминимум,потомучтоLinuxэтонетолькоUbuntu.Нуакогдавсепоняличтоуженадобычто­тосделать,

systemdпоказалсясообществуболееперспективным.

prometheus_ru 18августа2016в11:17   ⬆

0 

АяговорюконкретнопроUbuntu.Upstartбылтамажс2006наподтанцовках,ас2009ужевовсеполя.Запятьлетничего

толкомнеизменилось,в14.04ApacheтакистартуетдосихпоризSysV.

Ужеговорилтут,ноповторюещераз:денегCanonicalдолжнобылобыхватитьнетолькозапилитьUpstart,ноипотрудиться

длянегонаписатьскриптыдляпрограмм.Аэтогосделанонебыло,SysVвсехустраивал.

Saffron 17августа2016в21:11

0 

>Во­вторых,SysVбылоглубокоплеватьнаинтимнуюжизньпрограмм.Онихзапускалнастарте,ноеслиутебячто­тоне

получалось,тоэтобылихличныепроблемы.Отлаживатьтакиевещи,кстати,практическиневозможно.Segmentationfault?

Настоящиемужчиныпишутпрограммы,которыезапускаютсяспервогоразаинесегфолтят,слабак.

Апочемуinitдолжензаботитьсяоличнойжизнипрограмм?Дляэтогосуществуютспециализированныебэби­ситтеры:олдовый

daemontoolsилихипстерскийmonit.Принципunix­way:делайсвоёделохорошо,идайостальнымвозможностьделатьсвоёдело.

НодажеесливыстрадаетеотNIHсиндрома,необязательновстраиватьсвойdaemontoolsвinit,егоможновыпуститькак

отдельноеприложение.

Кстати,вобзореразныхinitпрограмм,вызабылиотом,чтоinit—этопосутипростойскрипт,некоторыепишутполностью

кастомныйскриптзапускасистемынакаком­нибудьбашеилиещёлучше—наси.Есливажнаскоростьзапуска,асистемадавно

уженеменяетсясточкизрениядобавления/удалениядемонов,товполнесебевыбор.

>Однакокакбытьссервисами,которымнуженfork?Нудляначалаихнадоспросить,зачемимэто?Ведьвцелом,fork

применялсявосновномдлятого,чтобыдетачнутьсяотстартовавшегоихпроцесса,новслучаесUpstartэтоделатьнезачем.

Еслиунасумерinit,тоунасестьчутьбольшепроблем,чемнеработающийpostfix.

Такоевпечатление,чтовынеподозреваетеосуществованииальтернативныхточекзрения.Например,отом,чтософтневсегда

запускаетсяинитом.Нутамможнозапускатьотладочнуюверсию.Илипользовательможетзапускатьдемонвсвоихсобственных,

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

демонизироваться.

Кстатиоsystemd,авторынетолькопереизобрелиdaemontools,ноещёиinetdдокучи.

khim 17августа2016в22:09   ⬆

Апочемуinitдолжензаботитьсяоличнойжизнипрограмм?

+2 

Потомучтобольшенекому?UNIX,видители,такустроен,чтопо­хорошемуэтоможетсделатьтолькоinit.И,чтосамое

итересное,когда­тодавным­давноSysVinitименноэтоиделал.Там,конечно,небезподводныхкамнейбыло,но…по

первоначальнойзадумкеSysVinitдолженбылэтоделать!Однакосхемаоказаласьнедостаточногибкойивместотого,

чтобыдовестиеё«доума»онабылаобвешалиневероятнымколичествомкостылей.

Принципunix­way:делайсвоёделохорошо,идайостальнымвозможностьделатьсвоёдело.

Золотыеслова!Проблемавтом,чтоSysVinitделаетсвоёделоплохо!

Кстатиоsystemd,авторынетолькопереизобрелиdaemontools,ноещёиinetdдокучи.

Ачтовэтомплохого?Обеэтипрограммысуществуютпотому,чтоSysVinitнесправляетсясовзятыминасебяобязанностями.

systemd—справляется,внёмвPID1вернулито,чтотамвсегдадолжнобылобыть!Такчтокостыли—можновыброситьза

ненадобностью.

Saffron 18августа2016в00:35   ⬆

–2 

>Золотыеслова!Проблемавтом,чтоSysVinitделаетсвоёделоплохо!

Ачтоонаделаетплохо?Программызапускаются?Запускаются.Нупокрайнеймеренанашейсторонепулявылетела

нормально.Счеговывзяли,чтоответственностьюinitявляетсякакой­тотамсистемныймониторинг?Init—pid1,он

долженбытьпростымкакавтоматкалашникова.Совсемостальныммогутсправитьсяpid>1(ихесличтоиперезапустить

нежалко).Я,кстати,втречалсистемныйсофт,которыйимеетвстроенныйбэби­ситтер,зачемимтогдаещёодиннастороне

инитанужен?

>systemd—справляется

systemd—этоNero(которыйболванкизаписывает)миралинукс.Безумныйкомбайнер,которыйумеетвсё.Чутьлине

дистрибутиводнойпрограммой.Никтонеспорит,чтоможноотлитьвсёвмонолите,нозачем?Каковапрактическая

ценность?

Видители,логикапростая.Одинбэби­ситтердлявсехлучше,чемкаждыйсофтсосвоимбэби­ситтером,этораз.Далее,

невсебэби­ситтерыодинаковохороши,этодва.Разработчикдолженписатьсофт,анебэби­ситтеров,этотри.

systemdможнособратьмизерным,есливыключитьто,чтоненужно.Крометого,монолитностьегосильно

преувеличена,этонабормелкихинструментов,которыевзаимодействуютмеждусобой.

Saffron 18августа2016в03:40(комментарийбылизменён)   ⬆

–1 

>Одинбэби­ситтердлявсехлучше,чемкаждыйсофтсосвоимбэби­ситтером,этораз.

Нефакт.Единаяточкаотказа.Вонразработчикихромапришликтому,чтонакаждуювкладкунадозапускатьсвой

процесс.Аятакужедавноделалнаfluxbox,тамможнолюбыеприложенияобъединятьвовкладки.Втомчислеuzbl

(нынепокойный).Тажесамаяджавазапускаетповиртуальноймашиненакаждыйпроцесс(унихтакая

самодиагностика,чтопомощнеебэби­ситтерабудет).Такчточемплохоиметьнесколькоинстансовбэби­ситтера—

неясно.

>Далее,невсебэби­ситтерыодинаковохороши,этодва

Есливаскакразработчиковсистемыэтоволнует—напишитесвой.Тольконенадоеговстраиватьвinit,пустьбудет

независимойсистемой.

>Разработчикдолженписатьсофт,анебэби­ситтеров,этотри.

Такестьжеготовые.Потом,еслиусофтатребованияпонадёжностиработывмногодевяток,токастомныйбэби­

ситтерзаточенныйконкретноподэтотсофт—естественноерешение.

>Крометого,монолитностьегосильнопреувеличена,этонабормелкихинструментов,которыевзаимодействуют

междусобой.

Вопросмодульностиневдроблении,авовзаимозаменяемости.Естьхотьодинкомпонент,которыйможнозаменить

насторонний?Нетеоретически,анапрактике,такчтобыэтотстороннийкомпонентсуществовал.Длямодульной

системынеобходимочёткоочерченныеоткрытыеинтерфейсы.Еслионименяютсякаждыйрелиз,тосистема,пусть

дажеразбитаянанесколькофайлов,останетсямонолитной.

prometheus_ru 18августа2016в10:32   ⬆

+1 

Длямодульнойсистемынеобходимочёткоочерченныеоткрытыеинтерфейсы.Еслионименяютсякаждый

релиз,тосистема,пустьдажеразбитаянанесколькофайлов,останетсямонолитной.

systemdсостоитизразныхбинарей.НиктонемешаетВамнаписатьсвой.Простонытьомодульностилюбят,

обычно,те,ктоничегописатьинесобирался,апростоповторяет«монолитноэтоплохо»,какмантру.

prometheus_ru 18августа2016в11:18   ⬆

0 

Ипроединуюточкуотказа,простите,забылсразу.

init—всегдаединаяточкаотказа.Корявособранныйinitramfs—единаяточкаотказа.Корявыймодульядра—

единаяточкаотказа.

Еслипроблемыуinit,товсеостальноеуженеважно.Иэталогикавsystemdхороша.

prometheus_ru 17августа2016в22:45   ⬆

0 

inetdвообщенасегодняшнийденьненуженникому,придуманбылотбедности,посколькуlatencyбылабольшой.

Яниразунезабывал,чтоinit—этопростойскрипт,нуичто?Этокак­тоуменьшаетегонедостатки?

Нуипроальтернативныеточкизрения.Дляотладкиможно(инужно)запускатьдемонсамомуснужнойкоманднойстрокой.В

чемпроблема?

чемпроблема? grossws 17августа2016в22:46   ⬆ 0

grossws 17августа2016в22:46   ⬆

0



init—этопосутипростойскрипт

 

prometheus_ru 17августа2016в22:47   ⬆

0



Авторкомментария,думаю,говорилобinit,которыйизinitramfs.

 
grossws 17августа2016в22:52 (комментарийбылизменён)   ⬆ 0 

grossws 17августа2016в22:52(комментарийбылизменён)   ⬆

0



Ага,написанныйнаСи.Выхотьразвегоисходникизаглядывали?Илиисходникиupstart'а?

Онжетожечерезrc.localобычнодёргается?

edited:имелосьввидунаsysvсистемах

edited:имелосьввидунаsysvсистемах k0ldbl00d 17августа2016в23:00   ⬆

k0ldbl00d 17августа2016в23:00   ⬆

Авторкомментария,думаю,говорилоinit­скприптах

Saffron 18августа2016в01:46   ⬆

0

0





УваснаСи,уменя—набаше.Init—эточтоядрубудетпереданокакinit,ядрочестноисполнитлюбойскрипт.

Подразумевается,чтоэтотскриптумеетзапускатьсистему.Мневотпришлоськопатьсявисходниках,когдаlvmнехотел

дружитьсdmraid,такчтояточнознаю,чтоэтобаш.

Причёмтутисходникиupstart'a?Счеговывзяли,чтодляуспешногозапускалинуксанеобходиммонстрвродеupstart,

systemdилиopenrc?Любойскриптсойдёт.Ячитал,какэнтузиастысваялиinitскриптнаcommonlisp,апотомсиделивнём

черезудалённыйотладчик,которыйREPL.Забавно,нонепрактично.Продвинутыеinit­системы—этовопросудобства

конечногопользователя,анесуровойнеобходимости.

andvgal 17августа2016в21:16  +4 

andvgal 17августа2016в21:16

+4 

Думаювстатьенеуказаносамоеглавное,аименноподдержкаcgroupиlimitsвsystemdизкоробки,неговоряужеоnamespaces.

Теперь«родные»сервисыкрайнелегкоразграничитьтак,чтобыонинемешалидругимврамкахтойжесистемы.Например,

действительнобезвойныресурсовудаётсязапускатьнесколькосервисовбазданныхилиJVMнаоднойсистемебезконтейнеров

иливиртуалок.

Автоматическирестартпомогизбавитьсяоткостылейнаdaemontoolsилиrunit.

P.S.Самгодадвапротивилсяsystemdпоканепозналвесьегодзен.

prometheus_ru 17августа2016в22:39   ⬆

+1 

Язнаюпроcgroupsиlimits,новрамкахстатьи,вмасштабахзоопаркастартаобычныхслужбсчелэтонетакимужважным.В

продебольшевсегонаблюдаюcgroupsиlimitsкакраздляJVM,ноуменяеговпроденет.

zunkree 18августа2016в01:03   ⬆ 0 

zunkree 18августа2016в01:03   ⬆

0



ОткройтедлясебяOpenRC,гдетакжеестьподдержкаcgroupsиlimitsизкоробки.

AVX 17августа2016в21:22

0



Вначалебылопросто:загрузчик—ОС—программы Потомтак:загрузчик—ОС—системазапуска—программы Иеслираньшебылокакбыпонятно,чтоОСвцеломразрабатываеткомандаразработчиковконкретногодистрибутива,котораяи заботитсяосистемеуправленияпакетамипрограмм,запускомипрочимивещами;тотеперьсистемазапускаявновыделиласьв нечтоотдельное,закотороевродениктоинеотвечает.Создателиsystemdкакбынеотвечаютзаunitфайлы,апредоставляют эторазработчикамдистрибутивовипрограмм.Разработчикидистрибутивовпривсёмжеланиинесмогутдлякучипрограммэто всёперепахать,аразработчикипрограммплеватьхотелинато,какиктоихбудетзапускать,иужтемболеепрокакой­то стандартзапуска­остановки­рестарта­(чего­угодно­ещё). Скольконесмотрел—вовсехдистрибутивахтакойбардак,мешанинаизsysv,upstartиsystemd.Длясерверов,побольшому счёту,systemdнеособоинадо,авотдлявсякихмобильныхустройств,типаноутбуковипланшетовисмартфонов(ипрочего

барахла)—будетсильнозаметнаразница—водномслучаезагрузказа3секунды,вдругомза15с.

prometheus_ru 17августа2016в22:40   ⬆

+2 

Поверьте,systemdинаблюдениезаслужбамиещекакнадонасерверах.Потомучтохочетсябытьуверенным,чтоесли

службавылетитсsegmentationfaultилиещекак,будеткомуподхватитьупавшеезнамя.

grossws 17августа2016в22:49   ⬆ grossws 17августа2016в22:49   ⬆

+1 

Вrhel/centos7бардаканенаблюдается.В6—быловышекрыши,из­засоседстваupstartиsysv.

larrabee 18августа2016в00:17   ⬆

larrabee 18августа2016в00:17   ⬆

ВCentOS7никакогобардака

+2 

ll /etc/init.d/

­rw­r­­r­­ 1 root root 13948 Sep 16 2015 functions ­rwxr­xr­x 1 root root 2989 Sep 16 2015 netconsole

­rwxr­xr­x 1 root root

­rwxr­xr­x 1 root root 8953 May 13 13:55 td­agent

6630 Sep 16

2015 network

Системныхвсего2скрипта,остальноезависитотмейнтейнеровпакета.Наарчевообщеникакихинитскриптовнет,

мейнтейнерысправляютсяипишутюнитыдлявсегософта.Системдубралмногоболи.Теперь,чтобыпонятькакзапускается

демонможнопросмотреть5­15строккода,вестоинитскриптанадвесотнистрок,поправитьилинаписатьсвойюнитдело5

минут.

Invariant 18августа2016в04:07   ⬆

нокакжеbash­x/etc/init.d/service_which_does_not_want_to_start???

AVX 18августа2016в08:44   ⬆

0

0





Спасибо,7несмотрел,будуизучать.Иливсё­такинадоещёразарчпоизучать(оченьужихвикихороша,навсевопросы

можнонайтиответ).Идеологиясамогосистемдмненравится,нокакеёреализуютвомногихдистрибутивах—ужас.

Надеюсь,чтоэтопростопереходныйпериод,поканужнасовместимостьсостарымсофтом(которыйвсёещёнаписанс

ориентациейнаsysv).

kay 17августа2016в21:37 

kay 17августа2016в21:37

0



Такинепонялнакогожалуетсяавтор.НаразработчиковsystemdилинаразработчиковПО,которыепилятчто­товроде:

 

ExecStart=/etc/init.d/service start ExecStop=/etc/init.d/service stop

 

Еслипоследнее,товозможноэтодаженеразработчики,амантейнерыпакетов.

 
 

prometheus_ru 17августа2016в22:42   ⬆

0



Тутвиноватыите,идругие.

Разработчикампофиг,онитолькоSysVподдерживают.Мэйнтейнерыпакетовобычнокладутнанеобходимостьсозданияunit­

файлов,ведьSysVжеработает.

Замкнутыйкруг.

gold_user 17августа2016в22:40

0 

OpenRCнехватаетвэтомсписке.Какнекрути,аондоступен,разрабатываетсяисписыватьегососчетовневижуповода.Если

увасиноемнение—непротиввыслушатьего.

prometheus_ru 17августа2016в22:41   ⬆

0 

Я,увы,непрофессионалвэтойобласти,посколькуспециализируюсьнаDebian/Ubuntu.НезнакомсреализациямиOpenRC

подних.

gold_user 18августа2016в08:07(комментарийбылизменён)   ⬆

0 

Увыиах,ноотстатьияожидалбольшего.Далеконеполнораскрытатема,дажепроsystemd.Длясравнения,

статья2011года

статья2011года

Дажесмашиннымпереводоминформативнее,чемвашастатья.

ОсновнаяпроблемаOpenRCвDebian—этолицензия.ПоэтомуврядлиOpenRCпоявитсявDebianподефолту.

OpenRCимеетсвоюреализациюкоманд

serviceиstart­stop­daemonOpenRCимеетсвоюреализациюкоманд

иработаетповерхrc­скриптов.КакэтореализованоиработаетможнопосмотретьнапримереCalculateLinux.

Сценарииинициализации

Сценарииинициализации

Иеще,что­тоянемогупонять,чтомнедаствыигрышвовременипристарте(неболееоднойминуты)используюsystemd?

AVX 18августа2016в08:48   ⬆

чтомнедаствыигрышвовременипристарте

0 

Например,включаететелефон,ионзагружается40секунд…или—5секунд.Естьразница?Другойпример—

видеорегистратор—задержкавключениявполминутыужеоченьнеудобна,гораздолучшекогдазапустится

практическисразу.Дляодноядерныхпроцессоровразницыповремениможетинебыть,носейчасчутьлиневчасах2

иболееядрапихают.

prometheus_ru 18августа2016в10:33   ⬆

+1 

Выпростите,ноянеписалстатьюсобзоромпроsystemd,такихобзоровнаХабретысячи.

Мнехотелосьпояснить,чтовкоролевствеDebian/Ubuntuплохоссистемойинициализации.Плохопоцеломуряду

причин.Окоторыхявполушутливойформерассказал.

daan 17августа2016в22:40  daan 17августа2016в22:40

–2

Будукраток:ненавижуsystemd.

Запилитьмонстракоторыйзаставилизменитьпривычныйукладжизниадмина—достойнопорицания.

prometheus_ru 17августа2016в22:43   ⬆

+1 

Поверьте,укладжизниадминаначалменятьсяещесUpstart.Потомсталменяться,когдасталопонятно,чтоDebianтоже

перейдетнаsystemd.Возможно,изменитсяещераз,нопокаsystemdобладаетвсемишансаминастатусновогоSysV.Поэтому

авторукрайнехочется,чтобыsystemdсталстандартомуразработчиковсофта.

crlam0 18августа2016в00:29   ⬆ crlam0 18августа2016в00:29   ⬆

>Поверьте,укладжизниадминаначалменятьсяещесUpstart.

Вызабылиуточнить:Debian/Ubuntuадмина.

Вызабылиуточнить:Debian/Ubuntuадмина. grossws 18августа2016в00:33   ⬆ 0 0

grossws 18августа2016в00:33   ⬆

0

0





Вrhel6тожебылupstart,хотябольшаячастьсофтажиланаsysvinit­скриптах.

crlam0 18августа2016в00:51

crlam0 18августа2016в00:51(комментарийбылизменён)   ⬆

0



Яотвечал@prometheus_ru,которыйчутьвышенаписал«Я,увы,непрофессионалвэтойобласти,поскольку

специализируюсьнаDebian/Ubuntu».

Нотемнеменее:ВытолькоподтверждаетечтоспоявлениемUpstartжизньадминанеменялась,развRHEL6его

появлениенеособозадело.

prometheus_ru 18августа2016в00:52   ⬆

0 

RHEL6ещекакзадело.Потомучтотамнаблюдалосьпримерното,чтосейчасвUbuntu16.04.RHEL7тожезадело,

посколькуубежалинаsystemd.

daan 18августа2016в12:35   ⬆ daan 18августа2016в12:35   ⬆

0 

UpstartэтоэволюцияSysVinitscripts.

Systemd—революция.

Привычныйуклад—этонезастой,астабильноесовершенствование,планомерноедвижениеклучшему.

Systemdпредлагаетновуюфилософию,подходизаставляеттратитьвремянато,чтодоегоприходаужеработало.

celebrate 17августа2016в23:53  celebrate 17августа2016в23:53

0 

ВsystemdестьволшебнаяопцияPrivateTmp,которая,являясьвпринципеполезной,можетнадолгопродлитьдебагнекоторых

приложений.

Prototik 18августа2016в00:09   ⬆ Prototik 18августа2016в00:09   ⬆

0 

Натоонаи«волшебная»:)Влюбомслучаенадопонимать,чтотамвюнитеикчемуприведёт.

symbix 18августа2016в00:49(комментарийбылизменён)

+1 

То,чтовubuntumain,кстати,более­менеепоupstart­феншуюбыло.Почтивсеsysv­добровосновномбылоунаследованоот

мейнтенеровдебиана,окоторыхя,пожалуй,лучшенебудуговоритьничего(аведьинашеллеможносделатьхорошо—см.

openrc).Иотом,каконивнедрилиsystemd,тоженебудутговоритьничего.

Хорошийпример,какнадоиспользоватьsystemd—Arch.

prometheus_ru 18августа2016в00:51   ⬆

0 

СоглашусьпроArch,тамsystemdвполноймереикрайнехорош.Увы,ArchкакпомненедостаетнекихLTS­версий,нууж

больноrollingrelease.

Апромейнтейнеровдебиана—яздесьмогутолькоудивляться,посколькупоидееденегCanonicalдолжнобылобыхватить,

чтобыдлявсегоболееилименееважногозапилитьскриптынаsystemd.

symbix 18августа2016в00:59   ⬆

0 

Чтоподелать,нетвжизнисчастья.Былпроектarch­server,носдохтолкомнеродившись.

dion 18августа2016в01:26

–1 

Самоехреновоевsystemd—есличто­тонетак,торазобратьсяпростонереально.Уменявотнаноутеиз­заcryptsetupэтот

systemdтуповиситвпопыткеперезагрузиться.Какэточинить—япростоуманеприложу…АобычныйSysVрабоатетотлично.

L1Ntu 18августа2016в10:30  L1Ntu 18августа2016в10:30

0 

Оченьлюблюсмотретьнавайн«Яуже15летадмин,новотвsystemdуже3годаникакнимагуничегопонять»

Такможет,стоитпотратить15минутсвоеговременичтобысестьиразобратьсясsystemd?

develop7 18августа2016в10:54   ⬆ develop7 18августа2016в10:54   ⬆

0

авдругза15минутразобратьсянеполучитсяипридётсяпотратить20?

delvin­fil 18августа2016в10:30  0 

delvin­fil 18августа2016в10:30

0 

ДачтожетаквсепривязалиськUPSTART?НубезобноввGentooработаетпрекрасноSYSV.Вчемпроблемато?

Толькозарегистрированныепользователимогутоставлятькомментарии.Войдите,пожалуйста.