FreeBSDの無限ループ
-
08-07-2019 - |
質問
私は、常にセグメンテーション違反を起こすスクリプトを持っています-セグメンテーション違反として解決できない問題は、Python libxmlバインディングにあります-それらを書きませんでした。それでは、Linuxではinf.loopを実行して、スクリプトが終了したときに再起動するようにしました。
#!/bin/bash
while [ 1 ]
do
nice -n 19 python server.py
sleep 1
done
まあ、FreeBSDで/ bin / bashを見つけることができないので、動作しません。
アイデアはありますか? cronはオプションではないことを考慮してください。許可されるダウンタイムは数秒です。
解決
/ bin / shはほぼ確実に存在しますが、bashが本当に必要な場合:
cd /usr/ports/*/bash
make install
/ usr / local / bin / bashにbashをインストールする必要があると思います
他のヒント
システムにはいくつかのシェルプログラムがあり、そのスクリプトはほとんどすべてのシェルで実行されるように見えます。
type bash
と入力して、bashの場所を確認します。そうでない場合は、shを試してください。そこにあるはずで、動作するはずです。 type bash
または type sh
の結果を取得し、/ bin / bashの代わりに使用します。または、/ etc / passwdを見て、アカウントを探して、シェルが何であるかを確認します。私はそれが最後のフィールドだと信じており、/ bin / shや/ usr / bin / bashなどのようなものを言うでしょう。 / bin / bashの代わりにそれを使用します。
FreeBSDがデフォルトでどのシェルを使用するかわかりませんが、おそらくいくつか付属しています。使用しているシェルのマニュアルページには、そのシェルのループ構文が記載されています。おそらくかなり似ています。