私はこれについて多くの研究を行っており、それを行う方法に多くのアプローチを見ました。しかし、これらのどれも私には効果がないようです。たとえば、私は次のことをしました。
~/.config/upstart/text.config
上記のディレクトリに.configファイルを作成し、次のコマンドを作成しました(以下のtestScript.shは私が実行したいスクリプトです)。
start on startup
task
exec /path/to/testScript.sh
私が試したもう1つのアプローチは、rc.localファイルに次の内容を書くことでした。
sudo -H /etc/init.d/testScript.sh start
init.dにtestScript.shを入れました。どちらのアプローチも私には適していません。システムはエラーやメモを提供していません。どこかで間違いをしているのでしょうか、それとも別の方法があるのでしょうか?これにより、システムの起動時にスクリプトが自動的に実行されます。
答え1
なぜ一般を使用しないのですかcron
?スーパーユーザーとして編集し/etc/crontab
て行を追加する
@reboot root /path/to/testScript.sh
これにより、問題なく問題が解決されます。 (man 5 crontab
その他のcron
オプションについては参考資料を参照してください)
答え2
まず、いくつかの点検をしましょう。
1:スクリプトがオペレーティングシステムで正しく実行されていることを確認します(つまり、エラーが発生しないか、どこかに停止していないことを意味します)。
2: たとえば、システム起動スクリプトを作成する必要があります。 testScript.service を作成し、/etc/systemd/system/ ディレクトリに配置します。次のシステム起動スクリプトの例としてスクリプトを追加できます。
[Unit]
After=mysql.service
[Service]
ExecStart=/usr/local/bin/testScript.sh
[Install]
WantedBy=default.target
/usr
システムを再起動する前にスクリプトを実行可能にする必要があるパスにスクリプトをコピーします。
cp /path/to/testScript.sh /usr/local/bin/testScript.sh
chmod 744 /usr/local/bin/testScript.sh
3:次にsystemdサービスデバイスをインストールし、起動時に実行するようにアクティブにします。
chmod 664 /etc/systemd/system/testScript.service
systemctl daemon-reload
systemctl enable testScript.service
Created symlink from /etc/systemd/system/default.target.wants/testScript-sp
よろしくお願いします。システムでテストしてみましたが、うまくいきます。それでもそれをクローンに入れて行を追加するオプションがあります@reboot
。