Ubuntuの起動時に自動的にスクリプトシェルを実行しますか? [閉鎖]

Ubuntuの起動時に自動的にスクリプトシェルを実行しますか? [閉鎖]

私はこれについて多くの研究を行っており、それを行う方法に多くのアプローチを見ました。しかし、これらのどれも私には効果がないようです。たとえば、私は次のことをしました。

~/.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

関連情報