From: "Денис Смирнов" <mithraen@freesource.info> To: sisyphus@lists.altlinux.org Subject: Re: [sisyphus] systemd & network on boot Date: Fri, 22 Aug 2014 15:33:00 +0400 Message-ID: <20140822113300.GA817@mw.mithraen.ru> (raw) In-Reply-To: <CAK2uZ2d4sfffXysVoWFkwbkh32UxONmO5XYTO60e_zo3hG8=sg@mail.gmail.com> [-- Attachment #1: Type: text/plain, Size: 4652 bytes --] On Fri, Aug 22, 2014 at 12:03:56PM +0300, diver wrote: > root@office:~$ systemctl status network > ● network.service - Network Connectivity > Loaded: loaded (/etc/systemd/system/network.service; enabled) > Active: inactive (dead) О, я понял. Он enabled, но его никто не вытягивает! Там ошибка в секции Install -- нужно добавить кроме WantedBy=network-online.target еще и: WantedBy=network.target и сделать: systemctl deamon-reload systemctl reenable network.service > Ну допустим, но почему нет никаких сообщений в лог ? как это предлагается > штатно диагностировать? безотносительно к текущей проблема, а в целом. Не > будут же люди все время коллективно решать такие проблемы в рассылках? Да и > не всегда есть сеть. Потому что его никто не запускает, вот и нет сообщений в лог. Это одна из самых неочевидных особенностей systemd для админа при первом знакомстве. Дело в том, что в systemd вообще нет понятия enable/disable аналогичного тому, что в sysvinit. В процессе загрузки systemd пытается "запустить" default.target. Смотрит на его зависимости (wants/requires) и запускает указанное. И так рекурсивно. А systemctl enable делает только одно -- оно смотрит в секцию Install указанного сервиса, и создает соответствующие симлинки. А вот дальше начинается самое интересное -- etcnet сейчас зависит от network-online.target. Причем он должен запуститься _до_ этого самоего network-online.target. Но network-online.target вытягивается исключительно теми сервисами, которые требуют обязательно поднятой сети до своего старта. Если вдруг у вас на машине не оказалось ни одного такого сервиса -- запускать сеть некому. network.target от network-online.target отличается тем, что первый требует чтобы сеть запустилась, а второй -- чтобы сеть была установлена до продолжения загрузки. А необходимость в local-fs.target тоже следствие подобной интересной ситуации -- network запускается после (After) udev-settle. Но он его не _требует_ (Wants/Requires). Это значит, что если udev-settle запускается -- надо запускать network после него. Но если udev-settle никому не нужен -- то не надо пытаться его запускать. Раньше из-за сервиса, сохраняющего dmesg, udev-settle стартовал всегда. А вот теперь он стартует мягко скажем далеко не всегда. И тогда некому потребовать, чтобы network запускался после local-fs.target. Все это выглядит очень запутанным на первый взгляд, для осознания нужно четко понять три идеи: 1. Wants/Requires указывают _зависимости_, After/Before -- сортировку. Это ортогональные понятия. 2. enable/disable исключительно создают симлинки следуя командам в секции Install у сервиса. 3. сервис запускается _только_ если на него есть wants/requires зависимость от сервиса, который запускается. Единственный юнит, который всегда запускается при старте -- default.target. Остальное только если оказывается в дереве зависимостей. -- С уважением, Денис http://mithraen.ru/ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 181 bytes --]
next prev parent reply other threads:[~2014-08-22 11:33 UTC|newest] Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-08-21 10:13 ` Dmitriy L. Kruglikov 2014-08-21 10:55 ` Viacheslav Dubrovskyi 2014-08-21 11:03 ` Dmitriy L. Kruglikov 2014-08-21 10:29 ` Денис Смирнов 2014-08-21 12:58 ` Евгений Терешков 2014-08-21 21:37 ` Денис Смирнов 2014-08-21 23:09 ` Евгений Терешков 2014-08-21 23:24 ` Евгений Терешков 2014-08-22 8:02 ` Шенцев Алексей Владимирович 2014-08-22 9:07 ` Евгений Терешков 2014-08-22 9:24 ` Шенцев Алексей Владимирович 2014-08-22 11:41 ` Денис Смирнов 2014-08-22 13:09 ` Шенцев Алексей Владимирович 2014-08-22 13:53 ` Денис Смирнов 2014-08-22 14:04 ` Шенцев Алексей Владимирович 2014-08-22 14:26 ` Денис Смирнов 2014-08-25 1:56 ` alexei 2014-08-25 14:21 ` Денис Смирнов 2014-08-25 14:28 ` alexei 2014-08-25 14:30 ` Денис Смирнов 2014-08-25 14:43 ` alexei 2014-08-25 14:49 ` Денис Смирнов 2014-08-25 15:25 ` alexei 2014-08-25 15:38 ` Денис Смирнов 2014-08-25 16:00 ` alexei 2014-08-25 16:07 ` Денис Смирнов 2014-08-25 16:13 ` alexei 2014-08-26 13:34 ` Денис Смирнов 2014-08-27 1:38 ` alexei 2014-08-27 1:47 ` Денис Смирнов 2014-08-22 14:30 ` Денис Смирнов 2014-08-22 15:14 ` Денис Смирнов 2014-08-22 19:32 ` Денис Смирнов 2014-08-22 20:45 ` Денис Смирнов 2014-08-26 11:07 ` Alexey Shabalin 2014-08-26 13:29 ` Денис Смирнов 2014-08-22 11:39 ` Денис Смирнов 2014-08-22 11:50 ` Денис Смирнов 2014-08-22 14:49 ` Евгений Терешков 2014-08-22 15:13 ` Денис Смирнов 2014-08-21 21:36 ` Денис Смирнов 2014-08-22 4:05 ` Peter Evdokimov 2014-08-22 11:35 ` Денис Смирнов 2014-08-22 11:33 ` Денис Смирнов [this message] 2014-08-22 11:50 ` Alexei V. Mezin 2014-08-22 12:04 ` Денис Смирнов 2014-08-22 12:05 ` Денис Смирнов 2014-08-22 13:51 ` Денис Смирнов 2014-08-22 13:54 ` Шенцев Алексей Владимирович 2014-08-27 13:03 ` Вадим Илларионов 2014-08-27 16:53 ` Денис Смирнов 2014-08-28 0:24 ` Вадим Илларионов 2014-08-28 0:41 ` Вадим Илларионов 2014-08-26 5:32 ` Sergei Epiphanov 2014-08-26 13:11 ` Денис Смирнов 2014-08-26 13:23 ` Sergei Epiphanov 2014-08-26 13:31 ` Денис Смирнов 2014-08-26 13:34 ` Alexey Shabalin 2014-08-26 13:36 ` Денис Смирнов 2015-01-20 19:47 ` Hihin Ruslan
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20140822113300.GA817@mw.mithraen.ru \ --to=mithraen@freesource.info \ --cc=sisyphus@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git