web-dev-qa-db-ja.com

ブート時またはログイン時にrootとして.shを実行する必要があります

Linuxでまだ新しく、ubuntu 12.10を実行している

Ndiswrapperを使用して部分的に解決された既知の問題があるワイヤレススティック(ae2500)があります。ただし、それを使用するには、再起動するたびに同じスクリプトを実行し、ドライバーを効果的にアンインストールして再インストールする必要があります。簡単にするために毎回実行する.shファイルを作成しましたが、毎回Sudoログインを行う必要があります。

私が探している3つの解決策があり、この特定の問題を解決するためにすべてが必要というわけではありませんが、学習目的のためにそれらをすべて知りたいです。

  1. 起動時にスクリプトまたはfile.shを実行します(他のプログラムも同様)
  2. root権限でスクリプトまたはfile.shを自動的に実行します
  3. 毎回プロセスを実行する必要がないように、インストールを永続的にします。

これに関して私が尋ねるとは思わなかった追加の情報(コマンドの合理化を含む)や一般的な知識をいただければ幸いです。ファイルの内容は次のとおりです。私はそれを入力していたので、私はほとんどちょうどそれを作りました。

cd ~/ndiswrapper-1.58rc1

Sudo modprobe -rf ndiswrapper
Sudo rm /etc/modprobe.d/ndiswrapper.conf
Sudo rm -r /etc/ndiswrapper/*
Sudo depmod -a

Sudo make uninstall
Sudo make
Sudo make install
Sudo ndiswrapper -i bcmwlhigh5.inf
ndiswrapper -l
Sudo modprobe ndiswrapper
3
Graymayre

起動時にファイルを実行するには、基本的に.desktopを/etc/xdg/autostart/に配置します

コマンドラインからファイルの.desktopを設定する方法は次のとおりです。

Sudo mv file.sh /usr/bin

これにより、シェルファイルパスが/usr/binに移動します。

それから

/usr/share/applications

次に、.desktopファイルを作成して入力する

Sudo -H gedit file.desktop & 

&は、ターミナルを引き続き使用できるが、ファイルを開いたままにすることができることを意味します。私のように金魚の記憶があれば便利です。

Geditで次を記述します。

[Desktop Entry]
Name=myfileName
Exec=/usr/bin/file.sh
Type=Application
Terminal=false

必要に応じて、今すぐ閉じることができます。それがあなたの空想をとるなら、icon=path/to/icon行を追加することによってアイコンでそれをジャズすることができます。

このファイルを起動時に実行するには、そのコピーを保存する必要があります

/etc/xdg/autostart/

スクリプト(myfile.sh)がすでに機能している場合、つまり、動作するはずです。

4
Magpie

File.shを/etc/init.d/に入れて、update-rc.dを使用してみてください。

update-rc.d file.sh defaults
3
Allfo

ログイン時に実行するには(12.04なので、これはわずかに異なる可能性があります)、右上のメニュー(シャットダウンオプション付き)をクリックし、[スタートアップアプリケーション]をクリックします。

次にAddをクリックし、名前と説明を入力して、bashスクリプトの場所を参照します。ログアウトしてから再度ログオンすると、動作するはずです。

この方法で行う場合は、スクリプトでSudogksudoに変更することをお勧めします。そうすると、端末に座って要求するのではなく、Nice GUIでSudo特権を要求します。 。

1
ScottC

私は他の答えの代替案を持っています:crontabを使用します

rootでcrontabを実行し、次のようなジョブを追加します

@reboot/path/to/your/script

http://en.wikipedia.org/wiki/Cron#Predefined_scheduling_definitions

これは私がこの問題に取り組む方法です。私はそれが他の答えよりも良いか悪いと言うつもりはないので、解説を歓迎します。

1
emory

[これはカササギの答えと私自身の経験の組み合わせです。]

ブート時に.shスクリプト(またはその他のスクリプト)を実行するには、必要なものを実行します。

  1. スクリプトを簡単にアクセスできる場所(デスクトップなど)に置きます。
  2. スクリプトを右クリックしてプロパティに移動した場合、[許可]タブで[実行]と表示されていることを確認してください。 '誰でも'。
  3. リーフパッドまたはその他のテキストエディターを開き、次のように入力します。

    [Desktop Entry]
    Name=yourScriptName
    Exec=/usr/bin/yourScript.sh
    Type=Application
    Terminal=false
    
  4. Ctrl + Sを押し、名前として「scriptName.desktop」を入力し、デスクトップに保存します。
  5. Ctrl + Alt + Tでターミナルを開きます。
  6. タイプ:

    cd ~/Desktop
    

    〜は家を意味し、次のようになります。

    userName@computerName:~/Desktop$
    
  7. 次に:

    Sudo mv yourScript.sh /usr/bin
    

(通常、「/ path/to/script」ではなくyourScript.shコマンドで直接実行できるように、/usr/local/binに配置することをお勧めします)。

    Sudo cp scriptName.desktop /usr/share/applications

    Sudo mv scritptName.desktop /etc/xdg/autostart

それでおしまい!

私はlubuntu 17.04を使用しています。
これが有用で明確な説明であったことを願っています:)。

ベッセル

0
GamingWessel