Comment by jorvi

Comment by jorvi 5 days ago

4 replies

Are you running this particular unit file as a user unit or a system unit? Some targets like network-online.target don't work from user unit files.

You could also try targeting NetworkManager or networkd's "wait-online" services. Or if that doesn't work, something is telling systemd that you have an IP when you don't. NetworkManager has "ipv4.may-fail" and "ipv6.may-fail" that might be errenously true.

> at that point I might as well go back to init=/etc/rc

The difference is that systemd is much better at ensuring correctness. If you write the invoked shell command properly, it'll communicate failure or success correct and systemd will then communicate that state to the unit. It's still a lot more robust than before.

blibble 5 days ago

it's a system service file

the problem is systemd

> The difference is that systemd is much better at ensuring correctness.

yeah, whatever mate

  • jorvi 5 days ago

    Seems like you have an axe to grind with systemd because it replaced your familiar (but extremely cruddy) init system and now you refuse to debug the problem because you prefer being able to blame systemd.

    There is so much granularity and flexibility in what you can do it seems rather unlikely you cannot make it happen correctly. And if it is truly a bug... open an issue? They're rather responsive to it. And it isn't like the legacy init systems were bug free from inception (well, lord knows they were still chock full of bugs even when they were replaced).

    Edit: sitting here with a grin .. HN downvoting the advice of checking logs, debugging and opening an issue. I wish the companies y'all work at good luck.. they'll need it.

    • blibble 5 days ago

      > Seems like you have an axe to grind with systemd because it replaced your familiar (but extremely cruddy) init system and now you refuse to debug the problem because you prefer being able to blame systemd.

      I'm a pragmatist: I just want it to work

      my solution to MULTIPLE different services failing to IP bind is to turn on the non-local ip binding sysctl, bypassing systemd's brokenness entirely

      > There is so much granularity and flexibility in what you can do it seems rather unlikely you cannot make it happen correctly.

      I've written an init before (in C), I know how the netlink interface to set an IP address and add routing table entries works

      I understand the difference between monotonic and wall clocks

      I understand the difference between Wants and Require

      I know what's going on at every, single, level

      and I can't stand how unreliable systemd makes nearly every single one of my, bluntly, completely vanilla systems

      > And if it is truly a bug... open an issue?

      did you read the link I pasted earlier?

      I'm not wasting my time with that level of idiocy (from LP himself)

direwolf20 5 days ago

> Some targets like network-online.target don't work from user unit files.

So basically it just doesn't work sometimes for no particular reason.

> The difference is that systemd is much better at ensuring correctness

Uh, well, you just said that it isn't, because some targets like network-online.target don't work from user unit files.