Debian 9.1がインストールされたビーグルボーンブラックがあります。私たちは、システムの電源が入ったときに常に実行されることを望むGPIO用C ++プログラムを作成しました。どうすればいいですか?
答え1
極度にシンプル解決策は、@reboot
バイナリのみを実行するクローンジョブを追加することです。
crontab -e
sudo crontab -e
コード(たとえば、root crontab)を実行し、次の行を追加する必要があるユーザーに対してこれを行います。
@reboot /path/to/some/executable
これにより、システムが起動するたびにジョブが実行されるようにスケジュールされます。
crontab(5)
詳細については、マニュアルを参照してください(man 5 crontab
)。
プログラムが何をしているかに応じて、これだけで十分かもしれませんし、単純すぎるかもしれません。
答え2
プログラムをコンパイルし、既知のrun_gpio
パス(たとえば、/path/to/run_gpio
.root実行可能ファイルとして表示する必要があります)。
$ sudo chmod 755 /path/to/run_gpio
次に、Debianinit
システムを構成してプログラムを起動します。
ここで説明を見つけることができます。 http://xmodulo.com/how-to-automatically-start-program-on-boot-in-debian.html
Debian では、/etc/init.d というディレクトリには、起動と終了時に init プロセスが実行するスクリプトのリストが含まれています。したがって、起動時に特定のプログラムまたはスクリプトを自動的に実行するために対応するinit.dスクリプトを生成できます。
$ sudo vi /etc/init.d/run_gpio
vi以外にnanoも使用できます。次の行をinit.dディレクトリの新しいファイルに入れます。
#! /bin/sh
# /etc/init.d/run_gpio
case "$1" in start)
/path/to/run_gpio
;; esac
最後に、init.dスクリプトを実行可能にし、init.dスクリプトをデフォルトの実行レベルに追加して、起動時(および終了時に)呼び出すことができます。
$ sudo chmod 755 /etc/init.d/run_gpio
$ sudo update-rc.d run_gpio defaults