Manchmal, normalerweise nach einem Absturz oder einem plötzlichen Herunterfahren, wird screen
der Start verweigert. Befehle wie
screen
screen -ls
screen -r
screen -d
Ergebnis in der folgenden Ausgabe
Verzeichnis '/ var / run / screen' kann nicht erstellt werden: Berechtigung verweigert
Was ist das Problem hier? Wie kann ich das beheben?
quelle
Ich bin auf dieses Problem gestoßen, als ich eine auf Centos / RHEL 7 basierende Distribution ausgeführt habe, und es gibt unter / etc nirgends etwas mit dem Namen "Bildschirmbereinigung".
Eine Problemumgehung, die ich gefunden habe, bestand darin, einfach zu starten
sudo screen
und dann sofort zu beenden.Danach war ich in der Lage, screen ohne spezielle Rechte auszuführen, so dass es so aussieht, als würde es aufgeräumt / var / run, wenn die Chance dazu besteht.
quelle
Ich kann dieses Problem beheben, indem ich die folgenden Befehle ausführe.
quelle
TL; DR : Stellen Sie in Debian Stretch und höher sicher, dass
systemd-tmpfiles-setup.service
das erfolgreich gestartet wurde:Wenn deaktiviert (
Loaded: ... ;disabled; ...
), können Sie es mit aktivierensystemctl enable systemd-tmpfiles-setup.service
. Wenn Sie screen in einem Docker-Container verwenden möchten, müssen Sie entweder systemd in Ihrem Container-Image ausführensystemctl start systemd-tmpfiles-setup.service
oder Sie müssen/etc/init.d/screen-cleanup start
( wie von Huey vorgeschlagen ) jedes Mal ausführen, nachdem Sie sich in Ihrem Container angemeldet haben.Details: Seit Debian Stretch wird das Startskript
/etc/init.d/screen-cleanup
nicht mehr ausgeführt, da dieser Dienst standardmäßig maskiert ist (/lib/systemd/system/screen-cleanup.service -> /dev/null
), so dass systemd ihn ignoriert.Stattdessen
systemd-tmpfiles-setup.service
erzeugt/run/screen
beim Booten, wie konfiguriert/usr/lib/tmpfiles.d/screen-cleanup.conf
:d /run/screen 0775 root utmp
quelle
systemctl enable systemd-tmpfiles-setup.service
, den @Jacob vorgeschlagen hat, blieb über Neustarts hinweg bestehen.