[systemd-devel] Unload disabled units

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Mon Sep 16 07:36:11 UTC 2019


On Sun, Sep 15, 2019 at 03:12:22AM +0000, Daniel Duong wrote:
> Hi,
> 
> I have a 2 template units: 1 for a service and 1 for a socket. Each
> instance is a version of my web application.
> 
> After a successful deploy, I stop and disable the old version and I
> enable the new one:
> 	systemctl start belleshop at 0.2.socket
> 	# Test that everything is fine
> 	systemctl enable belleshop at 0.2.socket
> 	systemctl stop belleshop at 0.1.socket
> 	systemctl stop belleshop at 0.1.service
> 	systemctl disable belleshop at 0.1.socket
> 
> I've done that for a few versions now, and it seemed to work OK. There
> is a little problem though. The old versions are still loaded:
> 
> 	$ systemctl --no-legend --all list-units belleshop@*
> 	belleshop at 0.110.service loaded active   running Belleshop server
> 	belleshop at 0.34.service  loaded inactive dead    Belleshop server
> 	belleshop at 0.36.service  loaded inactive dead    Belleshop server
> 	belleshop at 0.37.service  loaded inactive dead    Belleshop server
> 	[...]
> 	belleshop at 0.110.socket  loaded active   running Belleshop socket
> 	belleshop at 0.34.socket   loaded inactive dead    Belleshop socket
> 	belleshop at 0.36.socket   loaded inactive dead    Belleshop socket
> 	belleshop at 0.37.socket   loaded inactive dead    Belleshop socket
> 	[...]
> 
> Is there any way I can unload these old versions?

Normally units should be unloaded immediately if they are stopped
and didn't fail. What systemd version are you using? (One possibility
to consider is that the glob matches *files*, and you are simply loading
the units at the time the systemctl query is made. Use 'belleshop@*'
instead.)

Zbyszek


More information about the systemd-devel mailing list