LINUX.ORG.RU

Segmentation fault


0

1

Здравствуйте. Запускаю приложение(Точнее игровой сервер) на Debian. Выскакивает вот такая ошибка Segmentation fault. Как ее исправить подскажите.

Ответ на: комментарий от pozitiv4eg

Не менее ясно, чем заголовок и содержимое поста.
Твой вопрос недалек от «Что-то не то. Как исправить?»

Что за игра? Что-то еще пишет?

Google - пытаешься найти что-то похожее на форумах. Нпример по запросу [[<distr>]] <package_name> segmentation fault

С помощью gdb/strace можно узнать о том, в чем именно проблема.

Tanger ★★★★★
()
Ответ на: комментарий от pozitiv4eg

Вываливается сразу при запуске, или каждый раз случайно?

Воспользуйтесь программой gdb, чтобы получить бектрейс после падения, или strace для более «быстрой» диагностики.

Ошибка «Segmentation fault» эквивалентна «программа выполнила недопустимую операцию и будет закрыта» в Windows.
Подробнее: http://ru.wikipedia.org/wiki/Segmentation_fault

AITap ★★★★★
()
Ответ на: комментарий от AITap

Вот что пишет сам разработчик игры. С небольшим количеством опций против выхода сервера из строя (anti-crash options) есть большая вероятность получения ошибок «Segmentation Fault» и любых других ошибок, сгенерированных вашим режимом игры. Это приведет к завершению работы сервера и Вам придется самим его снова запустить. Все, что вам нужно для использования ниже описанной программы, это среда Linux и возможность использования cron'a. Эта программа проверит, запущен ли процесс samp01b, и если это не так, запустит его вновь. Вам нужно уставовить следующий crontab: */5 * * * * /путь/к/samp/checksamp.sh

checksamp.sh: #!/bin/sh PROCESS_COUNT=$(ps -fu root | grep samp01b | grep -v grep | wc -l) case $PROCESS_COUNT in 0) /путь/к/samp01b & ;; 1) #OK, программа уже выполняется ;; *) #OK, запущено несколько экземпляров программы ;; esac Убедитесь, что у вас правльно выставлены все пути, иначе скрипт не будет работать. На данный момент скрипт не может обрабатывать несколько серверов SA-MP на одной машине, зато превосходно работает, когда толкьо один запущен. Требуется с помощью chmod устанвить права/разрешения на файл checksamp.sh в 0755 (+x)! Вы также можете перезапустить сервер при помощи этой пары shell-скриптов (спасибо Noosferatu (пост по теме)) Скрипт номер 1 startgtaserver.sh: #!/bin/bash export GTA_PATH=/home/sampsvr cd $GTA_PATH while [ true ]; do cat {$GTA_PATH}/server_log.txt >> {$GTA_PATH}/full_server_log.txt rm {$GTA_PATH}/server_log.txt touch {$GTA_PATH}/server_log.txt ./samp022svr done

Он работает непосредственно с исполняемым кодом сервера Второй скрипт, названный gtaserver.sh: #!/bin/bash server_start() { /home/sampsvr/startgtaserver.sh & # замените полным путем и именем запускаемого скрипта } server_stop() { killall startgtaserver.sh # имя вашего запускаемого скрипта killall samp01b # нужно добавить путь к killall, если он не прописан в $PATH } server_restart() { server_stop sleep 1 server_start } case «$1» in 'start') server_start ;; 'stop') server_stop ;; 'restart') server_restart ;; *) echo «usage $0 start|stop|restart» esac этот запускается из /usr/local/bin Толкьо измените пути в обоих скриптах на ваши, и после этого Вы можете запустить Ваш свервер, введя gtaserver start остановить сервер, введя gtaserver stop и, наконец, перезапустить его, введя gtaserver restart

pozitiv4eg
() автор топика

Запускаю приложение(Точнее игровой сервер) на Debian

Лучше запускай свой игровой сервер на дистре рекомендованном разработчиками. Сегфолтица, скорее всего, из за старых либ.

Zahar_Krater
()
Ответ на: комментарий от pozitiv4eg

В чём проблема? Текст написан предельно понятно, не считая некоторых неоптимальных решений в шелл-скриптах и съехавшего форматирования текста из-за неправильной настройки Вашего аккаунта на этом форуме.

AITap ★★★★★
()
Ответ на: комментарий от AITap

Дело в том что этот текст для меня как будто Меня по C++ Гонят. Так что кто может помочь. Оставьте данные копейкой не обижу.

pozitiv4eg
() автор топика
Ответ на: комментарий от pozitiv4eg

crontab - конфиг для программы cron (программа, запускающая другие программы по расписанию, подробнее см. man crontab)

Скрипты нужно просто записать в файлы, сделать их исполняемыми (chmod +x «/путь/к/файлу») и подправить пути к другим файлам. В чём именно у Вас проблемы?

AITap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.