Cannot make directory '/var/run/screen': Permission denied
Found a solution that doesn't require regular sudo on restarts
From 'Eric Z Ma' @ systutorials:
The directory
/var/run/screen/
is the socket directory for screen.Fortunately, screen reads a environment variable
SCREENDIR
to get an alternative socket directory.So to work around it, you can create a directory, such as
~/.screen
:mkdir ~/.screen && chmod 700 ~/.screen
and export the
SCREENDIR
to point to that directory:export SCREENDIR=$HOME/.screen
You can also put this line into you
~/.bashrc
so that it will also take effect afterwards.
This issue has been documented here. In short,
/etc/rcS.d/S70screen-cleanup
is running via upstart much earlier than it expects to have run, and is failing to correctly clean up that directory.
It can be fixed with the following command
sudo /etc/init.d/screen-cleanup start
I ran into this while running a Centos / RHEL 7 based distro, and it doesn't have anything named 'screen-cleanup' anywhere under /etc.
A workaround I found was to simply run sudo screen
and then immediately exit from it.
After that I was able to run screen without any special privileges, so it appears to clean up /var/run approriately up when given the chance.