鉱山のマシンを起動するたびに、次のコマンドSudo xhost SI:localuser:root
を実行する必要があります。だから私はこのプロセスを自動化したいのですが。私はこれにUbuntu 12.04 LTSを使用しています。
xhost
を実行すると表示されるべきであるため、このコマンドをファイル/etc/rc.local
に置いてみましたが機能していません。
SI:localuser:<myUser>
SI:localuser:root
ファイル/etc/rc.local
は次のとおりです。
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
xhost SI:localuser:root
exit 0
私は何かがありませんか?
* PS。:コメントを提案するように**私がやることをすることはこの質問について説明されています ここで 。これをより良い方法でやることができますか?
非常に正しく指摘するように、これはうまくいきません。あなたが本当にこれをやりたい(これはかなり悪い考えのように思えます)、これらの行を持つ~/.xinitrc
ファイルを作成します。
#!/usr/bin/env bash
xhost SI:localuser:root
xhost
コマンドはroot
以降のものとして実行する必要はありませんあなた Xセッションの所有者です。今、xinitrc
はかなり古いです、そして私はそれが現代のデスクトップ環境によって読まれることはわかりません。あなたはおそらくあなたのGNOMEセッションプロパティを微調整することによって同じことを達成することができます。
あなたのXサーバーへのrootアクセスを可能にする一般的なルールとしては、本当に良い考えではありません。いつでも必要なルートグラフィカルプログラムを実行するには、アクセス制御を無効にできます。
xhost +
Sudo gedit
xhost -
私はほとんどの現代のシステムでこれをする必要がないと確信しています。あなたは正確に何をしようとしていますか? Sudo
で呼び出されたプログラムは、とにかくXサーバーにアクセスする必要があります。
働くつもりはありません。
rc.local 以前の実行 X11サーバーが起動されます。
rc.local どこでわかりません X11サーバーがあります。つまり、$ DISPLAYの正しい値を知りません。
常に複数X11サーバー - Ubuntuは「高速ユーザー切り替え」をサポートしているため、自分のために1つのXORGインスタンスがある可能性があるため、ログイン画面に2番目のもの。
rc.local アクセスがありません現在実行中のX11サーバーのいずれかに。
それについて考えてください:xhost
を使ってrootにアクセスする必要がある場合は、rootはまだアクセスできないことを意味します。 rc.localはrootとして実行されています。
3つのポイントはすべて、Cronjobs、UDEVルール、そして他のほとんどのことにも適用されます。