フォルダーにスクリプトがあります:
/path/to/my/script.sh
このスクリプトは、システムが起動するたびに実行する必要があります(システムに誰もログインしていない場合でも)。これを実現するために何をする必要がありますか?
以下の場合は、root権限が必要です。ルートを取得するには、ターミナルを開いてコマンドを実行します
Sudo -i
コマンドプロンプトは「#」に変わり、端末セッションにルート権限があることを示します。
/etc/rc.local
にコマンドを追加するvi /etc/rc.local
次のようなコンテンツ:
# This script is executed at the end of each multiuser runlevel
/path/to/my/script.sh || exit 1 # Added by me
exit 0
/etc/init/myjob.confを作成します
vi /etc/init/myjob.conf
次のようなコンテンツで
description "my job"
start on startup
task
exec /path/to/my/script.sh
/etc/init.d/myscript
に新しいスクリプトを作成します。
vi /etc/init.d/myscript
(明らかに「myscript」と呼ばれる必要はありません。)このスクリプトでは、やりたいことを何でもします。おそらく、あなたが言及したスクリプトを実行するだけです。
#!/bin/sh
/path/to/my/script.sh
実行可能にします。
chmod ugo+x /etc/init.d/myscript
起動時にこのスクリプトを実行するようにinitシステムを構成します。
update-rc.d myscript defaults
ルートは必要ありませんし、ログインする必要もありません。
Crontab(crontab -e
)を編集して、次のようなエントリを作成できます。
@reboot /path/to/script.sh
これにより、通常のユーザーとして実行できます。 @reboot
は、コンピューターの起動時に実行されることを意味します(必ずしも再起動したときだけではありません)。
ターミナルから
newshell.sh.desktop
フォルダーに~/.config/autostart
ファイルを作成します。
gedit ~/.config/autostart/newshell.sh.desktop
Exec
、Name
、およびComment
の値を変更し、ファイルに追加:最初の行
[Desktop Entry]
Type=Application
Exec=/full/link/to/your/newshell.sh
Name=newshell
Comment=whatever you want
セーブ
または
gUIから実行できます。
Exec
、Name
、およびComment
を追加します。あなたの家には、.bashrcという名前のファイルがあります。このファイルは、セッションの開始時に実行されます。
ファイルの最後に次のようなものを置いてください:
sh /path/to/your/script.sh
編集:申し訳ありませんが、ユーザーがログインしたときに私の解決策が実行されるため、あなたの質問には答えませんでした...
ログインする前に何かを実行するには、rcconfまたはrc-fileを試してください: http://www.debianadmin.com/manage-linux-init-or-startup-scripts.html