オペレーティングシステムの起動後にアプリケーションを起動し、1時間ごとにアプリケーションを再起動します。

オペレーティングシステムの起動後にアプリケーションを起動し、1時間ごとにアプリケーションを再起動します。

起動後すぐにアプリケーションを実行する方法を探しています。このアプリケーションは1時間後にタイムアウトします。初期起動から1時間(初期アプリケーションタイムアウト後)にアプリケーションの他のインスタンスを起動したいと思います。私はCronがこのタスクを実行するように(賢く)設定できると思いました。起動時にシステムクロックを00:00:00にリセットし、Cronを正常に実行する以外に他の方法はありますか?よろしくお願いします。

修正する:maulinlawnの提案に従ってSystemd.serviceアプローチを使用しました。特に、/usr/bin/startVideo/startVideo.pyにPythonスクリプトのコピーを配置しました。次に、/lib/systemd/service/startVideo.service にサービスファイルを作成します。このファイルは、

[Unit]
Description=starts video recorder

[Service]
Type=simple
ExecStart=/usr/local/bin/startVideo/startVideo.py
Restart=always

[Install]
WantedBy=multi-user.target

やっぱり逃げて、

sudo systemctl enable startVideo.service

登録サービス。モニターやキーボードが接続されていない状態で、カメラに接続されたRaspberry Pi3で動作します。私は年中無休の24時間ビデオを録画することができ、電源が切れたら自分で再起動できるシステムを探しています。他の提案?このタイプのアプリケーションに対して「WantedBy」が正しく設定されていますか?

Crowellのこのソリューションとガイドラインに感謝します。

ベストアンサー1

あなたの説明に基づいてsystemd(私のすべてのコンピュータにこれがあるので)ファイルを使って.serviceアプリケーションを起動します。

サービスファイルから単純なwhileループでアプリケーションをラップするスクリプトを指します。このような:

#!/bin/sh

while true; do
    /path/to/your/application
done

これにより、アプリケーションがシャットダウン(「タイムアウト」)されるたびにループの条件が常に真であるため、それ自体が再起動されます。

これは1つの方法であり、私が考えることができる最も簡単な方法です。他の方法もあるかもしれません!

おすすめ記事