Desktop oder Server?
Da Linux besonders häufig als Server eingesetzt wird, bietet es sich an von vorn herein eine entsprechende Distribution zu verwenden. So bieten Debian und Ubuntu entsprechende Minimal-Zusammenstellungen an, die sich unter anderem dadurch auszeichnen, dass
- Kein X-Server (grafische Oberfläche) und entsprechende Displaymanager installiert wird
- Die Netzwerk-Konfiguration statisch (ifupdown oder netplan) statt über den Network Manager durchgeführt wird
- Kein Standby- oder Hibernate Zustand automatisch eingeschaltet wird
Prinzipiell gibt es aber keine spezielle Desktop- oder Server-Version bei Linux, weil dieses grundsätzlich eine Frage der Zusammenstellung und Konfiguration ist und daher das Eine jederzeit in das Andere überführt werden kann. Daher spricht nichts dagegen, eine Desktop-Ausgabe als Server zu verwenden. Schließlich gibt es keine Funktionsbeschränkungen aufgrund vorgegebener Nutzungs-Lizenzen. Ein häufig genannter Grund ist die komfortablere Konfiguration oder aber auch, dass ein als Desktop genutzter PC auch als Server verwendet werden soll.
Netzwerk
Ein Desktop - insbesondere mobile Geräte - sind darauf angewiesen, "auf Zuruf" eine Netzwerkverbindung herzustellen, das ist natürlich für einen Server, der immer unter derselben Adresse erreichbar sein sollte, nur in Ausnahmefällen sinnvoll. Hier reicht es aber üblicherweise, die jeweilige Konfigurationsdatei mit den richtigen Daten zu füllen, also bei Debian "/etc/network/interfaces" oder bei Ubuntu "/etc/netplan/<configdatei>.yml"
Standby
Um zu verhindern, dass der Server in den Standby-Modus verfällt, kann seit Verwendung des Systemd die entsprechenden Targets ausgeschaltet werden. Das passiert am Einfachsten mit einem "systemctl mask <service>"
Ist der Standby-Automatismus noch eingeschaltet, liefert die Status-Abfrage ein gültiges Ziel unter "Loaded:
$ systemctl status sleep.target
● sleep.target - Sleep
Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
Active: inactive (dead)
Docs: man:systemd.special(7)
Ausgeschaltet wird es mit "mask":
$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Created symlink /etc/systemd/system/sleep.target → /dev/null.
Created symlink /etc/systemd/system/suspend.target → /dev/null.
Created symlink /etc/systemd/system/hibernate.target → /dev/null.
Created symlink /etc/systemd/system/hybrid-sleep.target → /dev/null.
Eine erneute Prüfung liefert "/dev/null" als Ziel:
$ systemctl status sleep.target
● sleep.target
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
Sollte das irgendwann wieder aufgehoben werden, muss der systemctl mit der Aktion "unmask" und den entsprechenden Targets aufgerufen werden!