web-dev-qa-db-ja.com

起動時または起動時にシェルスクリプトを実行する

簡単に言えば、私の問題は、コンピューターを使用するたびにスクリプトを実行する必要があるため、プロセスを少し自動化しようとしていることです。

私のシステムにはnvidia gt540m vgaカードがあります。カードはデュアルです。要求の厳しいタスク用に1枚のハイエンドカードがあり、他のすべてにローエンドのオンボードカードを使用します。

現時点では、UbuntuはこのタイプのVGAカードをサポートしていません。オンボードのVGAカードのみを使用している場合、常に両方のカードに電力を供給します。

これにより、バッテリー寿命が非常に短くなります。

私はUbuntuが初めてなので、問題を解決するためのスクリプトを実際に見つける前に、たくさんのチュートリアルに従う必要がありました。

Acpi_callフォルダーをディレクトリ/ home/anpelにダウンロードし、次のコマンドでカードを強制終了します。

cd /acpi_call
Sudo insmod acpi_call.ko
Sudo ./test_off.sh

次のステップは、起動するたびに手動でコマンドを実行する必要があったため、デスクトップ上でシェルスクリプトを作成し、それを実行するとパスワードの入力を求められ、パスワードを入力するとカードが強制終了されます。スクリプトは次のようになります。

cd ~/acpi_call
Sudo insmod acpi_call.ko
Sudo ./test_off.sh
echo VGA card dead
exit

現在、コンピューターを起動するたびにシステムでこのスクリプトを実行するようにしているため、毎回手動で実行する必要はありません。

少なくともいくつかのガイダンスなしにシステムに何かを変更する経験はありません。すべてを台無しにする可能性が高いと思うので、私は自分の台無しにする方法がわからないので、実際に試したことはありません何でも、しかし、スクリプトを/etc/rc.localファイルに追加することで仕事が完了すると読んでいます。

それは本当ですか、または私が試さなければならない何かがありますか?

----編集-----

私はubuntu 11.10を使用していますが、言及していないのは残念です。

7
ppp

スクリプトファイルをスタートアップアプリケーションとして実行できます(Ubuntu 10.04 LTSの[システム]-[設定]-[スタートアップアプリケーション]-11.10の同等の場所は不明です)。

たとえば、起動時にinosyncユーティリティを実行するには、Startup Applicationsに次のエントリを追加しました。

Name=inosync
Command=/home/toaster/inosync.sh
Comment=Mirror DataDisk to Barracuda_01 

Bashスクリプトファイルinosync.shを実行するには有効にする必要があります。これは、ターミナルでSudo nautilusを使用してファイルに移動し、右クリックして[プロパティ]を選択し、[アクセス許可]タブに移動して、[ファイルをプログラムとして実行する]をオンにします。

3
CentaurusA

ブート時に実行されるスクリプトの正しい場所は、/ etc/rc.localからスクリプトを呼び出すことです

ファイル内のコメントはそれを要約しています:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
9