以前GCE上で.NET Coreアプリを定期実行する記事を書いたのですが、
無料枠で動かしたはずなのに課金の通知が飛んできたので、いったん撤退して手持ちのRaspberryPi上で動かすことにしました。
.NET Core 3.1ライブラリのダウンロード
Ubuntuはパッケージマネージャからインストール可能。Raspbianについては残念ながら提供されておらず。
そのため今回はダウンロードして展開、パスを通す形で実行できるように変更する。
https://dotnet.microsoft.com/download/dotnet-core/3.1
対象のライブラリはLinuxのARM32向け。RaspbianがARM32向けであるため。
本記事執筆時点では下記のファイルが最新。
wgetでPi上にダウンロード。
展開
ホームディレクトリ配下にディレクトリを作成して、その中に展開。
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.1.100-linux-arm.tar.gz -C $HOME/dotnet
Raspberry Piだと展開に時間がかかるのでしばし待つ。
展開が完了したら、 .bashrc
ファイルに下記のコマンドを追加。
コマンド: nano ~/.bashrc
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
コマンド実行確認
一旦ログアウトしてから(.bashrcの変更を適用させるため)、下記のコマンドを実行。
コマンド: ‘dotnet‘
こんな感じで表示されればOK。
Cron実行時
GCEで動かしていた時同様、Cronで定期実行したいのですが、上記のインストール方法だと、Cron実行時動きません。
bashに対してパスを通しているので、Cron実行時のshに通ってないため。
Cronの場合、
Cronファイルの PATH
の項目に /home/pi/dotnet
という形でパスを追加してやればOK。
.NET CoreのDLLに対しては絶対パス指定です。
また、シェルスクリプトではないので、 $HOME
のような変数が使えないことにも注意。