2016-11-29 20 views
2

にブート時にスクリプトを起動するための最良の方法は私がするとき、システム起動時に持っているし、最善の方法を探しているスクリプトを開始したい、私の方法があるものです:のlinux

  • VI /など/ systemdに/システム/

    [Service] 
    Type=simple 
    ExecStart=/usr/bin/myscript 
    CPUSchedulingPolicy=rr 
    CPUSchedulingPrioty=27 
    [Install] 
    WantedBy=multi-user.target graphical.target 
    
  • systemctl daemon-reload; systemctl enable myscript; systemctl start rmyscript

それが働いて良いが、ちょうどWO myscript.serviceそこに別のよりよい方法があれば、

+0

システムベースの環境では、サービスがスクリプト/プログラムを起動するための最良のオプションです。サービスを開始して依存関係を追加するタイミングについては、他のパラメータを設定できることに注意してください。 –

答えて

1

これを達成するにはいくつかの方法がありますが、次の場合はroot権限が必要です。ルートを取得するには、ターミナルを開き、次のコマンドを実行します

sudo su 

をして、コマンドプロンプトは、ターミナルセッションがroot権限を持っていることを示す「#」に変わります。

代替#1。

vi /etc/init.d/myscript 

(もちろん、それは「のMyScript」と呼ばれている必要はありません。)このスクリプトでは、あなたがやりたいものは何でも:/etc/init.d/myscriptに新しいスクリプトを作成します

initスクリプトを追加します。おそらく、ちょうどあなたが言及したスクリプトを実行します。

#!/bin/sh 
/path/to/my/script.sh 

はそれを実行可能にします。

chmod ugo+x /etc/init.d/myscript 

は、起動時にこのスクリプトを実行するためにinitシステムを設定します。

update-rc.d myscript defaults 

#2の代替。以下のような内容で

vi /etc/rc.local 

をに/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 

代替#3。成り上がりジョブを追加

/etc/init/myjob.conf作成:

vi /etc/init/myjob.conf 

を以下の内容で:ところで

description "my job" 
start on startup 
task 
exec /path/to/my/script.sh 

あなたが編集できるかどうかのルートである必要はありませんあなたcrontab (crontab -e)を入力し、次のようなエントリを作成します。

@reboot /path/to/script.sh 

このようにして、通常のユーザーとして実行できます。 @rebootは、コンピュータが起動したときに実行されることを意味します(リブートされたときだけでなく)。