lightdm認証が成功し、Unityがロードを開始したらすぐにスクリプトを実行したい そして、rootユーザーとしてスクリプトを実行したいと思います。
Unityの起動スクリプトはどこにありますか?
lightdm認証が成功し、Unityがロードを開始したらすぐにスクリプトを実行したい そして、rootユーザーとしてスクリプトを実行したいと思います。
Unityの起動スクリプトはどこにありますか?
回答:
最初にスクリプトを配置/usr/bin
し、実行許可を与えます。
次に/home/[user-name]/.config/autostart/
、起動時に実行するスクリプトを実行する.desktopファイルを作成します。
例:-スクリプトのファイル名を「example」または「example.sh」にします
次の行を含むgeditで.desktopファイルを作成し、filename.desktopとして保存します。 /home/[user-name]/.config/autostart/
[Desktop Entry]
Type=Application
Exec=sudo example
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=myscript
Comment=Startup Script
ここで、Exec=sudo example
または
.desktopファイルへの実行許可の付与からExec=sudo example.sh
スクリプトをルートとして/usr/bin
実行します。
現在、スクリプトは起動時に実行されます。
別の可能性:
でファイルを作成する $HOME/.config/upstart/my-upstart-script.conf
start on desktop-start
stop on desktop-end
script
sudo fdisk -l > /home/[user-name]/upstart-test.txt
end script
Upstartの詳細:
http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html
http://upstart.ubuntu.com/cookbook/
sudo
パスワードなしで実行する情報:
/home/yourusername/.config/upstart/
。
コマンドを実行するにはrootとして、後のログイン、別の簡単なトリックがあります:
次の2つの手順が必要です。
/etc/crontab
)、小さなスクリプトを実行(コマンドを実行)します。トリガーファイルは同じスクリプトによって削除されるため、コマンドは1回だけ実行されます。シーケンスは次のとおりです。
USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore
セットアップ
2つの小さなスクリプト:
ログイン時にトリガーファイルを作成するもの:
#!/bin/sh
touch $HOME/.trigger
そして1つ2つはコマンドを実行します:
#!/bin/bash
FILE="/path/to/your/homedirectory/.trigger"
# don't use $HOME here, since you run it by root
if [ -f $FILE ]; then
<your command here, run by root>
rm -f $FILE
fi
create_trigger.sh
ととして保存しますrun_command.sh
。次のコマンドをスタートアップアプリケーションに追加します(ダッシュ>スタートアップアプリケーション>追加)。
/path/to/create_trigger.sh
/etc/crontab
ファイルに次の行を追加します(sudo nano /etc/crontab
):
* * * * * root /path/to/run_command.sh
これで、定義されたコマンドは、ログインから1分以内に1回実行されます。