Creshal
Ja, doch schon. Erst recht, da das Beenden in der Regel Caches etc. löscht, die immense Performancegewinne bringen können. RAM sparen kann der Kernel auch selber, dafür gibts schließlich den Swap.
10% der systemd-Features sind sinnvoll, 10% überflüssig und 80% kontraproduktiv.
Ovion
Also beschleunigt systemd meinen Bootprozess, um dann im laufenden Betrieb zu bremsen?
Ich bekomme langsam das Gefühl, dass es sich hier um ein Bananenprodukt handelt.
fs4000
Systemd wird nicht wahllos Prozesse beenden, die nichts zu tun haben. Die Prozesse müssen das schon selbst veranlassen.
Ovion
So, wie ich Herrn Poettering verstehe, ist das aber die Absicht dahinter (== das Prozesse das durchaus veranlassen sollen), dass nur gestartet ist, was auch gebraucht wird. Und selbst wenn, ändert das nichts daran, dass der gesamte Prozess komplett neu gestartet werden muss, wenn er sich beendet hat, was ja durchaus intentioniert zu sein scheint.
Ein komplettes Beenden eines Prozesses scheint mir schlicht nicht sinnvoll, ich kann keinen Grund (außer akutem Speicher- & Swapmangel) erkennen, warum ich Prozesse schlafen legen sollte. Ich kenne keinen (notwendigen) Dienst, der soviel Speicher belegt, dass sich das terminieren wirklich lohnen würde.
fs4000
Schau dir z.B. sshd an: Das ist wahrscheinlich die meiste Zeit eh nicht aktiv und wenn, dann forkt es sowieso. Wo ist jetzt das große Problem, dass Systemd auch noch ein exec() braucht? Bei Maschinen, wo SSH immer zu tun hat, wärs natürlich trotzdem nichts. Man kann sshd mit Systemd aber auch ganz normal nutzen, indem man .service statt .socket nimmt.
Ovion
Ok, in dem Fall macht ist es bei sshd zumindest nicht kontraproduktiv. Aber im Ganzen denke ich, dass es sich für die meisten Daemons eher kontraproduktiv auswirkt, bei sshd ist es in dem Fall ziemlich egal, welchen Weg man geht. Aber die Daemons, die ich gestartet habe, sollen ja auch abrufbar sein (ist ja eben nicht Windows, wo man mit überflüssigen Diensten zugeballert wird), das Daemons-Array enthält nur die Dienste, die auch wirklich laufen sollen, weil man irgendwann auf sie zugreifen möchte (ohne dass sie forken). Da macht es meines Erachtens wenig Sinn, wenn man intentioniert, dass diese Dienste sich beenden, wenn lange Zeit nichts mehr kam.
Creshal
SSH braucht im Idle ganze 1,2 MiB RAM. Wie viel Overhead hat man nochmal durch den inetd-Klon? Und warum wird sowas in systemd eingebaut, anstatt dass man, nunja, einfach inetd benutzt, wenn man sowas braucht?