Odpowiedzi:
Znaleziono rozwiązanie, które nie wymaga regularnego sudo przy ponownym uruchomieniu
Z „Eric Z Ma” @ systutorials :
Katalog
/var/run/screen/
jest katalogiem gniazd dla screena.Na szczęście screen odczytuje zmienną środowiskową,
SCREENDIR
aby uzyskać alternatywny katalog gniazd.Aby obejść ten problem, możesz utworzyć katalog, taki jak
~/.screen
:mkdir ~/.screen && chmod 700 ~/.screen
i wyeksportuj
SCREENDIR
do punktu do tego katalogu:export SCREENDIR=$HOME/.screen
Możesz również umieścić tę linię w tobie,
~/.bashrc
aby działała ona później.
Ten problem został udokumentowany tutaj . W skrócie,
/etc/rcS.d/S70screen-cleanup
działa przez upstart znacznie wcześniej, niż się spodziewa, i nie może poprawnie wyczyścić tego katalogu.
Można to naprawić za pomocą następującego polecenia
sudo /etc/init.d/screen-cleanup start
Natknąłem się na to podczas uruchamiania dystrybucji opartej na Centos / RHEL 7 i nigdzie w / etc nie ma nic takiego jak „czyszczenie ekranu”.
Obejściem, które znalazłem, było po prostu uruchomienie, sudo screen
a następnie natychmiastowe wyjście z niego.
Potem mogłem uruchomić ekran bez żadnych specjalnych uprawnień, więc wygląda na to, że wyczyszczę / var / uruchomię natychmiast, gdy tylko nadarzy się okazja.
Mogę rozwiązać ten problem, wykonując następujące polecenia.
sudo mkdir /var/run/screen
sudo chmod 777 /var/run/screen
TL; DR : W Debian Stretch i późniejszych upewnij się, że systemd-tmpfiles-setup.service
został pomyślnie uruchomiony:
$:> systemctl status systemd-tmpfiles-setup.service
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-setup.service; static; vendor preset: enabled)
Active: active (exited) since Thu 2018-06-21 19:54:06 CEST; 41min ago
...
Jeśli wyłączone ( Loaded: ... ;disabled; ...
), możesz chcieć włączyć za pomocą systemctl enable systemd-tmpfiles-setup.service
. Jeśli chcesz korzystać z ekranu w pojemniku Döcker wtedy trzeba albo dostać Systemd działa w pojemniku obrazu lub trzeba uruchomić systemctl start systemd-tmpfiles-setup.service
lub /etc/init.d/screen-cleanup start
( jak sugeruje Huey ) za każdym razem po zalogowaniu do swojego pojemnika.
Szczegóły: Od czasu Debian Stretch skrypt startowy /etc/init.d/screen-cleanup
nie jest wykonywany, ponieważ domyślnie ta usługa jest maskowana ( /lib/systemd/system/screen-cleanup.service -> /dev/null
), więc systemd ją ignoruje.
Zamiast tego systemd-tmpfiles-setup.service
tworzy /run/screen
przy rozruchu, jak skonfigurowano w /usr/lib/tmpfiles.d/screen-cleanup.conf
:d /run/screen 0775 root utmp
systemctl enable systemd-tmpfiles-setup.service
sugerowane przez @Jacob utrzymywało się po ponownym uruchomieniu komputera.