2021年6月6日はじめに小ネタです。作成するプログラムの要件で、コマンドを起動して、そのコマンドが「継続」している/していないことを確認する、という要件があります。標準出力に延々と出続けます。人が見るには標準出力にずっと出力し続けるのはいいですが、プログラム的に処理する場合は、通常3回ぐらいで終わらせるものです。要件としてあるとしましょう。いう場合にPythonで書いてみました。sargeというライブラリがあります。https://sarge.readthedocs.io/en/latest/overview.htmlpythonに元々あるSubprocessを、簡単に使用するためのライブラリです。Subprocessを素で使うと面倒な処理に向いているようです。ちなみに他も使ってみたのですが、むしろSubprocessより面倒だったという理由もあります。動作した環境は以下のとおりです。sargeサンプルプログラム以下がサンプルプログラムです。sargeのチュートリアルをほぼ丸パクリしました。エラーで出力しない場合はこちらを有効にする。sys.exit(main())プログラムの内容は見てのとおりですがサンプルと違うのはスレッド起動した関数と、メイン関数の間でd変数を用意スレッド内でd変数を変更main関数でチェック5以上ならループを終了です。pingが延々と帰ってこない場合も制御できているかを確認したかったので追加しました。ログどのように動作しているか、細かく見るためにログを追加し、出力してみました。実際に動かしてみないとわからない人でして。192.168.132.128(実在するIPアドレス)に出力した場合です。pingコマンドの出力を取り出せているのが分かります。10.0.0.1(存在しないIPアドレス)のコマンドは以下のようになります。out”が出た後、main関数を抜けているのが分かります。exited終わりにログを出してみて、どんな感じで動作しているかを確認することができました。ある程度は理解できたと思います。django-webtest忙しいので断片だけ。DjangoでWebブラウザからアクセスする感じでテストする、やり方の一つです。最近、お仕事関連で、perlとWebアプリケーションを触っています。両方一度にお勉強、ということで、perlのWAF(Webアプリケーションフレームワーク)を調べてみようと思いました。仕事でwebアプリケーションを作成しています。Djangoで作成し、webサーバをApache、環境をpipenvで設定したpython3環境上で動かす予定です。Player)上で、作って確認していたけど、いちいち起動するのがだるいです。今現在の仕事で、グラフ描画する可能性があるので、少し練習してみようと思います。私は確定拠出型年金に加入しています。