Бесконечный цикл во FreeBSD
-
08-07-2019 - |
Вопрос
У меня есть скрипт, который постоянно 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 для любой используемой вами оболочки должна рассказать вам о синтаксисе цикла этой оболочки. Это, вероятно, очень похоже.