lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Я предлагал поменятьWants=network.target Before=network.target After=systemd-logind.service Requires=systemd-udev-settle.service Before=network.target After=systemd-udev-settle.service просто одна из них запустит юнит даже если требуемый юнит дал сбой, а др. в таком случае забракует юнит и он даже не будет пытаться взлетать.Вот это интересная штука, по-моему, это различия между wants и requires (в ман я тоже смотрел, но пока одним глазом). |
deniolp |
|
![]()
Темы:
5
Сообщения:
134
Участник с: 02 декабря 2011
|
Я именно так поменял. И стало гораздо лучше. Хорошая пища для размышлений. ))
Arch awesome @各行其道@
|
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Короче говоря, надо просто изучить http://www.freedesktop.org/software/sys … .unit.html и всё должно разъясниться :) Вот бы ещё на русском языке это найти… |
deniolp |
|
![]()
Темы:
5
Сообщения:
134
Участник с: 02 декабря 2011
|
lampslaveДа, надо почитать. Ох уж эта новая systemd,- по мне, так очень интересно! А у lampslave следующее сообщение будет 1000-ым! ))
Arch awesome @各行其道@
|
sleepycat |
|
![]()
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
бефо и афтэ работают только в том случае, если перечисленные в нем юниты и юнит в котором оно перечислено запускаются логически одновременно. Для того чтобы явно объявить очередь юнита следовать после какого то, юзают связки after+wants/require. Как я делаю в таких случаях, сначала меняю require на want , чтобы юнит запустился наверняка, если он заработал так и оставляю, если чтото не так, то или он запускается, но не тогда когда нужно, или проблема не в юните, а в совте. Для отладки достаточно внимательно смотреть на загрузку системы и уловить свой юнит, чтобы понять приблизительно, где он вылетает, а systemctl status даст Вам остальные детали, происходившие с процессами юнита.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Ага, значит они только порядок помогают разруливать, а не зависимости. Ок, буду знать, спасибо.сначала меняю require на want , чтобы юнит запустился навернякаНаверное, наоборот, ибо Wants= deniolp В общем, на всякий случай лучше, наверное, как-то так прописать: Wants=network.target Before=network.target After=systemd-udev-settle.service Requires=systemd-udev-settle.service |
deniolp |
|
![]()
Темы:
5
Сообщения:
134
Участник с: 02 декабря 2011
|
Хорошо, спасибо! Я еще почитаю внимательно и поэкспериментирую с записями этими. Потом напишу о результатах. =)
Arch awesome @各行其道@
|
sleepycat |
|
![]()
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
такое чувство, что я с lampslave говорим одновременно , но о разном))) . Давайте я смысл передам моим словам более точнее. [Unit] After=unit2.service Want=unit2.service [Unit] After=unit2.service [Unit] After=unit2.service Requires=unit2.service =========== Моя (видимо неправильная) цепь рассуждений: они убрали requires и оно заработало, вывод - какойто процесс неотработал должным образом, что повлияло на работу юнита dhcp. Странно, но такое возможно.(а значит изменять юнит под ситуацию, дело правое и даже нужное) Вот на что я акцентировал внимание, если есть подозрения, я бы сначала посмотрел бы что из списка зависимостей юнита не отработало(еслт конечно оно есть), может проблема в том месте, а не в дефолтном юните. Наверное, наоборот, ибоВсе правильно, wants как вы указали, слабая версия requires, но именно это нам и нужно, чтобы соблюсти порядок пуска(см. мысли выше), который не так просто был прописан через директиву requires, если мы просто удалим requires порядок исчезнет(грубо говоря) и тогда причин “не заработать” у юнита только прибавится, что усложнит диагностику проблемы… Извините если я подсказывал, что называется не по смыслу, если оно так есть. Просто кажется со стороны чтото подобное “Да, спасибо Вы правы, но Вы не правы” xD
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Спасибо за подробное разъяснение :)сначала меняю require на want , чтобы юнит запустился навернякаА, ну вот теперь-то я понял, почему так, а не наоборот :) Она, получается, не “слабая”, а “менее строгая”, раз позволяет своему юниту стартовать вне зависимости от того, нормально отработал другой или нет. только в том случае, если это время совпадает со временем пуска unit2.service , механизм вызывет задержку, чтобы пропустить “вперед” unit2.serviceЭто как раз и есть моё “значит они только порядок помогают разруливать, а не зависимости”. если мы просто удалим requires порядок исчезнет(грубо говоря) и тогда причин “не заработать” у юнита только прибавится, что усложнит диагностику проблемыПроблема как раз в том, что никакого requires там изначально не было, и нам надо было просто правильно прописать, чтобы dhcpcd запускался после того, как udev найдёт все железки. |
sleepycat |
|
![]()
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
а пардон, я подумал что вы его удалили, поэтому и поинтересовались правильно ли это, косяк, надо топы с начала читать,а не с последней страницы)))
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|