1

私は常に segfaults を行うスクリプトを持っています - segfault が python libxml バインディングにあるので解決できない問題 - それらを書きませんでした。わかりましたので、Linux では inf.loop を実行していたので、スクリプトが終了すると次のように再起動します。

#!/bin/bash
while [ 1 ]
do
nice -n 19 python server.py
sleep 1
done

まあ、FreeBSD では /bin/bash が見つからないようなので、うまくいきません。

何か案は?cron はオプションではないことを考慮してください。許可されるダウンタイムは数秒です。

4

3 に答える 3

3

/bin/sh はほぼ確実に存在しますが、本当に bash が必要な場合:

cd /usr/ports/*/bash
make install

/usr/local/bin/bash に bash をインストールする必要があります。

于 2008-11-12T22:24:13.813 に答える
1

システムにはいくつかのシェル プログラムがあり、そのスクリプトはほとんどすべてのシェルで実行されるように見えます。

入力type bashして、bash の場所を確認します。そうでない場合は、sh を試してください。そこにあるはずで、うまくいくはずです。type bashまたはの結果を取り、type sh/bin/bash の代わりに in を使用します。または、/etc/passwd を見て、自分のアカウントを探し、シェルが何であるかを確認します。これが最後のフィールドだと思いますが、/bin/sh や /usr/bin/bash などのように表示されます。/bin/bash の代わりにそれを使用します。

于 2008-11-12T22:24:07.747 に答える
0

FreeBSD がデフォルトでどのシェルを使用するかはわかりませんが、おそらくいくつか付属しています。使用しているシェルの man ページには、そのシェルのループ構文が記載されているはずです。かなり似ているのではないでしょうか。

于 2008-11-12T22:22:53.957 に答える