[systemd-devel] SSL handshake error from offlineimap when using systemd to initialize
Michael Chapman
mike at very.puzzling.org
Tue Jan 23 08:35:47 UTC 2018
On Wed, 24 Jan 2018, Yubin Ruan wrote:
> On Mon, Jan 22, 2018 at 01:54:36PM +0100, Lennart Poettering wrote:
>> On So, 21.01.18 19:12, Yubin Ruan (ablacktshirt at gmail.com) wrote:
>>
>>> Hi,
>>>
>>> I use offlineimap to synchronize my emails. I want it to do a synchronization
>>> at system startup so recently I add a systemd service for it. However I always
>>> get error like this:
>>>
>>> EOF occurred in violation of protocol (_ssl.c:590)
>>
>> This suggests your network doesn't work when you invoke this.
>>
>>> 1. usually (after system startup) the same service is invoked by a timer
>>> and it works well so there is no problem with the script.
>>>
>>> 2. I believe the network is reachable, because the system will
>>> auto-connect WIFI after system startup. Maybe the initialization order is
>>> not configured properly? If so please see my mail service file
>>> below.
>>
>> Well, this is necessarily racy: your network setup races agains your
>> offlineimap invocation...
>
> I got in the configuration file
>
> [Unit]
> After=network.target
>
> Isn't this enough to get the initialization order right?
No, network.target is mostly about ordering things correctly during
shutdown.
You need to do two things:
* Use After=network-online.target in your unit.
* Enable some _other_ service that detects when the network is "online"
(whatever that means), and that is ordered Before=network-online.target.
If you are using systemd-networkd, for instance, this service is
systemd-networkd-wait-online.service. If you are using NetworkManager, you
want NetworkManager-wait-online.service.
See https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ for
further details.
More information about the systemd-devel
mailing list