Он останавливается, вероятно, из-за того, что вы запускаете его в своем сеансе, и после закрытия этого сеанса он получает сигнал SIGHUP и завершает работу.
Быстрый тест, чтобы определить, действительно ли это ваша проблема - войти в систему, выполнить
nohup your_server_startup_command > /dev/null 2>&1 &
Выйдите из системы и посмотрите, работает ли сервер. ЭТО НЕ ПОСТОЯННО РЕШЕНИЕ!
Обычный способ для сервера - создать сценарий управления в init.d, а затем использовать приложение управления службами вашего дистрибутива Linux, чтобы служба запускалась на соответствующих уровнях выполнения. В OpenSUSE вы будете использовать для этого YAST, в Ubuntu есть sysvconfig.
Есть небольшие различия между дистрибутивами Linux, посмотрите здесь , чтобы получить общее представление о том, как должен выглядеть скрипт init.d, или здесь для абсолютно чистого пример кости.