web-dev-qa-db-ja.com

Ubuntuにログインするときにシェルスクリプトを自動的に実行する方法

ログイン時にスクリプトを自動的に実行するにはどうすればよいですか?マシンの起動時ではなく、すべてのユーザーに対してではなく、GNOME UIを介して私(またはスクリプトを持つ特定のユーザー)がログインしたときのみです。

他の場所から読んだところ、ホームディレクトリの.bash_profileだと思いましたが、私には影響がありません。ターミナルウィンドウで~/.bash_profileと入力して手動で実行すると機能しますが、ログインしても自動的に実行されません。

Ubuntu 11.04を実行しています。私の.bash_profileのファイル権限は-rwx------です。今日作成する前は、.bash_profileがホームディレクトリにありませんでした。

Linuxの古いバージョンには各ユーザーに.profileファイルがあることを覚えているようですが、それも機能しません。

それはどのように行われますか? .bash_profileを機能させるには、何か他の設定が必要ですか?または、ユーザーごとのログインスクリプトを他のファイルに含める必要がありますか?

15
Mike Rowave

次のコマンドを[システム]> [設定]> [スタートアップアプリケーション]に追加するだけです。

bash /full/path/to/your/script.sh

これでうまくいくはずです;)

11

したがって、基本的には nodiscc が推奨するように、デスクトップランチャーを作成します:〜/ .config/autostart/script.desktop以下を使用して内容:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=autostart
Icon=system-run
X-GNOME-Autostart-enabled=true

次に、自動起動スクリプトを作成します:〜/ bin/autostartbashの内容:

#!/bin/bash
# Execute bash script below

〜/ bin/autostartが実行可能であることを確認してください

8
Bert Regelink

Crontabに行を追加できます-

crontab -e

次に、開いたファイルに次の行を追加します。

@reboot /path/to/your/cool/script

これにより、再起動時にスクリプトが実行されます。詳細については、man crontabをご覧ください

5

~/.xinitrcを試してください(一部の情報: https://wiki.archlinux.org/index.php/Xinitrc )。このスクリプトで開始するものはすべてバックグラウンドで開始/実行する必要があります。そうしないと、Xログインに干渉する可能性があります。

1
Slartibartfast