Бесконечный цикл во FreeBSD - PullRequest
1 голос
/ 13 ноября 2008

У меня есть скрипт, который постоянно segfaults - проблема, которую я не могу решить, так как segfault находится в привязках python libxml - не написал их. Итак, в Linux я использовал inf.loop, чтобы, когда сценарий умирал - он перезапускался, вот так:

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

Ну, я не могу найти / bin / bash во FreeBSD, так что это не работает.

Есть идеи? Учтите, что cron не является опцией - допустимое время простоя составляет несколько секунд.

Ответы [ 3 ]

3 голосов
/ 13 ноября 2008

/ bin / sh почти наверняка существует, но если вам действительно нужен bash:

cd /usr/ports/*/bash
make install

который должен установить bash в / usr / local / bin / bash, я верю

1 голос
/ 13 ноября 2008

В системе будет какая-то программа-оболочка, и этот скрипт выглядит так, как будто он будет работать практически в любой оболочке.

Введите type bash, чтобы увидеть, где находится bash. Если нет, попробуйте sh. Это должно быть там, и это должно работать. Возьмите результат type bash или type sh и используйте вместо вместо / bin / bash. С другой стороны, посмотрите на / etc / passwd, найдите свою учетную запись и обратите внимание, что такое оболочка. Я считаю, что это последнее поле, и оно будет что-то вроде / bin / sh или / usr / bin / bash или что-то еще. Используйте это вместо /bin/bash.

0 голосов
/ 13 ноября 2008

Не уверен, какая оболочка FreeBSD использует по умолчанию, но, вероятно, поставляется с несколькими. Страница man для любой используемой вами оболочки должна рассказать вам о синтаксисе цикла этой оболочки. Это, вероятно, очень похоже.

...