/run/user/$UIDディレクトリはいつ作られるか

Ubuntu で /run/user/$UID($UIDはユーザーID )ディレクトリがありますが、これはユーザーがログインした際に作られます。
(正確には、PAM の pam_systemd によって、初回ユーザーセッション開始時に作られます)

その為、ユーザーログイン前に cron を実行する際は、/run/user/$UID があることを期待しているプログラムの実行ではエラーが起こります。


例えば、pulseaudio をユーザー権限で実行させようとして、crontab でシステム起動時に実行される @reboot を使って以下のように実行しようとすると、エラーになります。


@reboot pulseaudio -D --exit-idle-time=-1


そこで pulseaudio では、既存のディレクトリを PULSE_RUNTIME_PATH で指定して起動するようにします。


@reboot mkdir -p /tmp/$(id -u)/pulse; export PULSE_RUNTIME_PATH="/tmp/$(id -u)/pulse"; /usr/bin/pulseaudio -D --exit-idle-time=-1



参考


pam_systemd
linux - What is this folder /run/user/1000? - Unix & Linux Stack Exchange
pacmd-cronで動作しないのはなぜですか?

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント