ターミナルを開く起動スクリプトが機能しないのはなぜですか?

ターミナルを開く起動スクリプトが機能しないのはなぜですか?

スクリプト作成を試してみるために、起動時にターミナルを開くスクリプトを作成しました (たぶん)。

#!/bin/bash
#start terminal at startup
#/usr/bin/gnome-terminal

それを/etc/init.dディレクトリに置いて、これを実行しました

update-rc.d myscript defaults

しかし、コンピュータを再起動しても何も起こりません。なぜでしょうか?

答え1

短い答え:

gnome-terminalGUIアプリケーションです。したがって、実行できるのはユーザーとして実行しようとしている時点では、まだログインしているユーザーがいません。代わりに、(スクリプトを実行するコマンド) をスタートアップ アプリケーションに配置します。

あなたはしない必要スクリプトまったくただし、コマンドをスタートアップ アプリケーションに直接追加できます。

gnome-terminalログインするとすぐに開始されます。

それ以外では、実行するコマンドがgnome-terminal正しくありません。 であるべきです/usr/bin/gnome-terminal(@steeldriver が言ったように、ありがとう)。または、 にあるので$PATH、単に ですgnome-terminal

答え2

スクリプトの主なエラーは、3 番目のステートメントでターミナルを開くコマンドがコメント アウトされていることです。"#3番目の文から「」を引用します。一方、単にgnomeターミナル有効にするには、ユーザー自身で実行する必要があります。つまり、update-rcに追加しても機能しません。ターミナルで実行したい場合は、crontabにスクリプトを追加し、ユーザーのcrontabファイルに次のように追加します。リブート制約。これにより、起動時にスクリプトが実行されます。まとめると、次のようになります。
ファイル名はscript.shです:

#!/bin/bash
#start terminal at startup
gnome-terminal

次のコマンドを使用して、スクリプトをユーザーが実行できるようにします。

chmod u+x /path/to/script.sh

次に、ターミナルを開いて、ユーザーの crontab を次のように編集します。

crontab -e -u username

必要な変更を加えた後、ファイルの末尾に次のステートメントを追加します。

@reboot /path/to/script.sh

再起動してください。これで完了です。

関連情報