通常のユーザーとしてrc.localを実行する方法は?


8

'startx'を含め、ログイン直後に呼び出されるようにしたいという賞賛の声rc.localがあり、彼らにとってはいい場所だと思いましたが、問題はrc.localrootとして実行されているのでそれを望まないことです。このようなもの:

su username -c somecommend-here

しかし、私は通常のユーザーとして「rc.local」全体を実行する方法を探しています、またはおそらく私のコードを置くより良い場所がありますか?

PS。Ubuntu-mini-remix 1104i386を使用しています

ありがとう


AFAIK rc.localは、起動シーケンスの最後にログインと並行して実行されます。つまり、ログインしなくても実行されますが、実行が保留されている場合はログインできます。
ハビエルリベラ

@JavierRiveraでは、解決策は何でしょうか?
omeid

回答:


6

ユーザーがログインしたときにコマンドを起動する最も簡単な方法.desktopは、コマンド用のファイルを作成して~/.config/autostartフォルダーに貼り付けることです。デスクトップファイルはどのように見えますか?次にwget、ユーザーがログインするたびにAsk Ubuntuホームページを取得する例を示します。

[Desktop Entry] 
Name=Launch wget
Comment=Fetches the Ask Ubuntu home page.
Exec=wget http://askubuntu.com/

グラフィカルログイン後にstartx(OPが尋ねたように)起動するのは良い考えではないようです。
enzotib

@enzotib:グラフィカルログインについての言及はありません。
Nathan Osman

たぶん私は、質問を誤解し、私は、ユーザーが開始することと信じていたstartxからrc.local。申し訳ありません
enzotib

1

/etc/rc.localとcrontabの違いはわかりませんが、通常はサービスアカウントを作成して適切なジョブを追加します。例:sudo crontab -u p4padmin -e

@reboot ~/bin/p4p -d -r ~/var/p4p/cache/foo -p 2020 -t depot:2020 -L ~/var/p4p/log/foo.log

サービスを実行するためにログインする必要はありません。


0

Linuxの方法は、コマンドをの~/.bashrc代わりに追加することです/etc/rc.local

すべてのユーザーは.bashrcホームディレクトリにを持っています。このスクリプトファイルは、ユーザーがログインした直後に自動的に実行されます。ユーザーの資格情報を使用して実行されるため、suコマンドは必要ありません。

これはまさにあなたが探しているもののようです。


.bashrcたとえば、ユーザーが通常のを使用してログインしたときに読み取られないため、これはまったく正しくありませんlightdm

彼が言った「手動の」startxコマンドのために、ユーザーがディスプレイマネージャーの代わりにコマンドラインログインを使用していると私はあまりに速く結論しました....私の悪い:-)
Thom
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.