ディレクトリ '/ var / run / screen'を作成できません:許可が拒否されました


26

クラッシュまたは突然のシャットダウンの後、通常はscreen開始を拒否します。のようなコマンド

screen
screen -ls
screen -r
screen -d

結果は次のようになります

ディレクトリ '/ var / run / screen'を作成できません:許可が拒否されました

ここでの問題は何ですか?どうすれば修正できますか?

回答:


34

再起動時に通常のsudoを必要としないソリューションが見つかりました

systutorials @ 'エリックZ馬'

ディレクトリ/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
これは機能しますが、すべてのスタートアップで実行する必要があります。そうしないと、エラーが何度も発生します。
クリース

3

Centos / RHEL 7ベースのディストリビューションを実行中にこれに遭遇しましたが、/ etcの下には「screen-cleanup」という名前はありません。

私が見つけた回避策は、単に実行sudo screenしてからすぐに終了することでした。

その後、特別な権限なしでscreenを実行できたので、機会があれば/ var / runを適切にクリーンアップするようです。


1

次のコマンドを実行して、この問題を修正できます。

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

1
これは良い解決策ではありません。再起動するたびに、これをやり直す必要があります。
-arupgsh

0

TL; DR:Debian Stretch以降では、それ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
   ...

disabled(Loaded: ... ;disabled; ...)の場合は、で有効にしたいかもしれませんsystemctl enable systemd-tmpfiles-setup.service。あなたは内の画面を使用したい場合はドッキングウィンドウコンテナあなたがいずれかを取得する必要があなたのコンテナの画像で実行しているシステムDまたはあなたが実行する必要がありsystemctl start systemd-tmpfiles-setup.service/etc/init.d/screen-cleanup startヒューイにより示唆されるように)あなたのコンテナにログインした後に、それぞれの時間を。

詳細: 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.confd /run/screen 0775 root utmp


リブートのたびにOPが(手動で)実行する必要がある手順を(また)提案しているようです。永続的なソリューションを提供できますか?コメントで返信しないでください。回答を編集して、より明確で完全なものにします。
スコット

@Jacob systemctl enable systemd-tmpfiles-setup.serviceが示唆した@Scottは、再起動後も持続しました。
タガー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.