使ってみよう
@reboot /usr/bin/screen -dmS nfc /home/pi/.nvm/versions/node/v17.8.0/bin/npm run --prefix /home/pi/nfc/ dev
起動時にスクリプトを実行します/home/pi/nfc/
。残念ながら、再起動後はスプラッシュ画面は表示されません(使用screen -ls
)。そのコマンドを使用せずに使用すると、通常は機能します@reboot
(screen -ls
私の画面を一覧表示)。
reboot /usr/bin/screen -dmS test
期待どおりに動作します。
grep CRON /var/log/syslog
見せてくださいMar 25 17:22:05 pi CRON[509]: (pi) CMD (/usr/bin/screen -dmS nfc /home/pi/.nvm/versions/node/v17.8.0/bin/npm run --prefix /home/pi/nfc/ dev)
。
何が間違っているのか、どんなアイデアがありますか?
ベストアンサー1
この答えは、npmスクリプトがある時点で終了し、スクリーンセッションが終了するという前提に基づいています。
後でいくつかのコマンドを実行して画面を「使用中」にしておくと、これを防ぐことができます。
screen -dmS foo sleep 10s
10秒後に終了します。
screen -dmS bar bash -c 'sleep 10s; bash'
スリープモードの後にbashシェルを起動し、screen
シャットダウンを防ぎます。
crontabでは、次のようになります。
@reboot /usr/bin/screen -dmS nfc bash -c '/home/pi/.nvm/versions/node/v17.8.0/bin/npm run --prefix /home/pi/nfc/ dev; exec bash'
目的がスクリプトと対話するのではなく、スクリプトからのnpm
ログ出力を保存することである場合は、次を使用する代わりに出力をログファイルにリダイレクトすることもできますscreen
。
@reboot /home/pi/.nvm/versions/node/v17.8.0/bin/npm run --prefix /home/pi/nfc/ dev >> /home/pi/npmscript.log