'/ var / run / screen'디렉토리를 만들 수 없습니다 : 권한이 거부되었습니다


26

때때로, 일반적으로 충돌 또는 갑자기 종료 된 후 screen시작을 거부합니다. 같은 명령

screen
screen -ls
screen -r
screen -d

다음과 같은 결과가 나옵니다

'/ var / run / screen'디렉토리를 만들 수 없습니다 : 권한이 거부되었습니다

여기서 무슨 문제가 있습니까? 이 문제를 어떻게 해결할 수 있습니까?

답변:


35

다시 시작할 때 정기적으로 sudo를 요구하지 않는 솔루션을 찾았습니다.

에서 '에릭 Z 엄마'systutorials @ :

디렉토리 /var/run/screen/는 화면의 소켓 디렉토리입니다.

다행히도 screen은 SCREENDIR대체 소켓 디렉토리를 얻기 위해 환경 변수 를 읽습니다 .

따라서이를 해결하기 위해 ~/.screen다음 과 같은 디렉토리를 작성할 수 있습니다 .

mkdir ~/.screen && chmod 700 ~/.screen

SCREENDIR해당 디렉토리를 가리 키 도록를 내보내십시오 .

export SCREENDIR=$HOME/.screen

이 줄을 ~/.bashrc나중에 다시 적용 할 수도 있습니다.


25

이 문제는 여기 에 설명되어 있습니다 . 한마디로

/etc/rcS.d/S70screen-cleanup 예상보다 훨씬 일찍 upstart를 통해 실행 중이며 해당 디렉토리를 올바르게 정리하지 못했습니다.

다음 명령으로 해결할 수 있습니다

sudo /etc/init.d/screen-cleanup start

1
이것은 작동하지만 매 시작마다 실행해야합니다. 그렇지 않으면 오류가 계속 발생합니다.
Krease

3

Centos / RHEL 7 기반 배포판을 실행하는 동안이 문제가 발생했으며 / etc 아래에 'screen-cleanup'이라는 이름이 없습니다.

내가 찾은 해결 방법은 단순히 실행 sudo screen한 다음 즉시 종료하는 것입니다.

그 후 특별한 권한없이 화면을 실행할 수 있었으므로 기회가 주어지면 / var / run을 적절히 정리하는 것처럼 보입니다.


1

다음 명령을 실행하여이 문제를 해결할 수 있습니다.

sudo mkdir /var/run/screen
sudo chmod 777 /var/run/screen

1
이것은 좋은 해결책이 아닙니다. 다시 시작할 때마다 다시 실행해야합니다.
arupgsh

0

TL; DR : 데비안 스트레치 이상에서 다음 systemd-tmpfiles-setup.service이 성공적으로 시작 되었는지 확인하십시오 .

$:> 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
   ...

비활성화 된 ( Loaded: ... ;disabled; ...) 경우을 사용 하여 활성화 할 수 있습니다 systemctl enable systemd-tmpfiles-setup.service. 당신이 내 화면을 사용하려면 고정 표시기 컨테이너 다음 중 하나를받을 필요가 컨테이너 이미지에서 실행 systemd 하거나 실행해야 systemctl start systemd-tmpfiles-setup.service하거나 /etc/init.d/screen-cleanup start( 휴이에 의해 제안 ) 당신의 용기에 로그인 한 후마다.

세부 정보 : 데비안 스트레치 이후 시작 스크립트 /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


재부팅 할 때마다 OP가 수동으로 수행 해야하는 절차를 제안하는 것처럼 보입니다. 한 번만 수행하면되는 영구적 인 솔루션을 제공 할 수 있습니까? 의견에 응답하지 마십시오. 명확하고 완전하게 답변을 편집 하십시오.
Scott

@Scott systemctl enable systemd-tmpfiles-setup.service@Jacob는 재부팅 지속 것을 제안.
Tagar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.