Иногда, обычно после аварии или внезапного выключения, screen
отказывается запускаться. Команды как
screen
screen -ls
screen -r
screen -d
результат в следующем выводе
Невозможно создать каталог '/ var / run / screen': разрешение запрещено
В чем здесь проблема? Как я могу это исправить?
источник
Я столкнулся с этим во время работы дистрибутива на базе Centos / RHEL 7, и в нем нет ничего с именем 'screen-cleanup' в каталоге / etc.
Обходной путь, который я нашел, состоял в том, чтобы просто бежать
sudo screen
и затем немедленно выйти из этого.После этого я смог запустить экран без каких-либо особых привилегий, поэтому он, кажется, очищает / var / runuprorly, когда есть такая возможность.
источник
Я могу решить эту проблему, выполнив следующие команды.
источник
TL; DR : в Debian Stretch и более поздних версиях убедитесь, что
systemd-tmpfiles-setup.service
он был успешно запущен:Если отключено (
Loaded: ... ;disabled; ...
), то вы можете включить его с помощьюsystemctl enable systemd-tmpfiles-setup.service
. Если вы хотите использовать screen в Docker-контейнере, то вы должны либо запустить systemd в образе вашего контейнера, либо запускатьsystemctl start systemd-tmpfiles-setup.service
или/etc/init.d/screen-cleanup start
( как рекомендует Huey ) каждый раз после входа в ваш контейнер.Детали: Начиная с Debian Stretch, скрипт запуска
/etc/init.d/screen-cleanup
не выполняется, потому что по умолчанию этот сервис маскирован (/lib/systemd/system/screen-cleanup.service -> /dev/null
), поэтому systemd игнорирует его.Вместо этого
systemd-tmpfiles-setup.service
создает/run/screen
при загрузке, как настроено в/usr/lib/tmpfiles.d/screen-cleanup.conf
:d /run/screen 0775 root utmp
источник
systemctl enable systemd-tmpfiles-setup.service
который @Jacob предложил сохранить после перезагрузки.