Hue*_*uey 46 unix gnu-screen ubuntu
有时,通常在崩溃或突然关机后,screen拒绝启动。命令像
screen
screen -ls
screen -r
screen -d
Run Code Online (Sandbox Code Playgroud)
导致以下输出
无法创建目录“/var/run/screen”:权限被拒绝
这里有什么问题?我怎样才能解决这个问题?
Kre*_*ase 64
找到了一个在重启时不需要常规 sudo 的解决方案
该目录
/var/run/screen/是屏幕的套接字目录。幸运的是,屏幕读取环境变量
SCREENDIR以获取替代套接字目录。因此,要解决此问题,您可以创建一个目录,例如
~/.screen:Run Code Online (Sandbox Code Playgroud)mkdir ~/.screen && chmod 700 ~/.screen并将
SCREENDIR指向该目录的导出:Run Code Online (Sandbox Code Playgroud)export SCREENDIR=$HOME/.screen你也可以把这行放到你里面,
~/.bashrc这样以后也能生效。
Hue*_*uey 35
此问题已在此处记录。简而言之,
/etc/rcS.d/S70screen-cleanup通过 upstart 运行的时间比预期的要早得多,并且无法正确清理该目录。
可以使用以下命令修复
sudo /etc/init.d/screen-cleanup start
Run Code Online (Sandbox Code Playgroud)
小智 7
在我的例子中screen-cleanup,服务在 Debian“buster”10.4 上被屏蔽:
$ systemctl is-enabled screen-cleanup.service
masked
Run Code Online (Sandbox Code Playgroud)
和
$ file /lib/systemd/system/screen-cleanup.service
/lib/systemd/system/screen-cleanup.service: symbolic link to /dev/null
Run Code Online (Sandbox Code Playgroud)
这会导致以下情况:
$ systemctl enable screen-cleanup.service
Synchronizing state of screen-cleanup.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable screen-cleanup
Failed to enable unit: Unit file /lib/systemd/system/screen-cleanup.service is masked.
Run Code Online (Sandbox Code Playgroud)
下面的技巧是在每次启动时创建运行目录。/dev/null手动删除符号链接(systemctl unmask不起作用):
rm /lib/systemd/system/screen-cleanup.service
Run Code Online (Sandbox Code Playgroud)
然后启用该服务:
systemctl enable screen-cleanup.service
Run Code Online (Sandbox Code Playgroud)
并启动它:
systemctl start screen-cleanup.service
Run Code Online (Sandbox Code Playgroud)
我在运行基于 Centos / RHEL 7 的发行版时遇到了这个问题,并且 /etc 下的任何地方都没有名为“screen-cleanup”的任何内容。
我发现的一个解决方法是简单地运行sudo screen然后立即退出。
之后,我能够在没有任何特殊权限的情况下运行 screen,因此,当有机会时,它似乎会适当地清理 /var/run 。
| 归档时间: |
|
| 查看次数: |
29268 次 |
| 最近记录: |