Вопрос

У меня есть скрипт, который постоянно 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 не является опцией - допустимое время простоя составляет несколько секунд.

Это было полезно?

Решение

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

cd /usr/ports/*/bash
make install

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top