Процесс, работающий в фоновом режиме, был убит в Linux

У меня есть удаленный сервер, к которому я подключаюсь с помощью SSH. Я запустил процесс (mongodb) на сервере, используя следующую команду: "/usr/bin/mongod --dbpath /mnt/ebs-300/mongodb --logpath /mnt/ebs-300/log/mongodb/mongodb.log run --config /etc/mongodb.conf &"

Когда к команде добавляется "&", этот процесс выполняется в фоновом режиме. После запуска процесса и проверки его работоспособности я выхожу из теминала (ssh). Этот процесс был убит через некоторое время путем печати следующих журналов - "получил kill или ctrl c или сигнал hup 1 (зависание), завершится после завершения текущего cmd"

Может кто-нибудь, пожалуйста, сообщите мне, если я делаю что-то не так или есть правильный способ запустить процесс с удаленного терминала.

Спасибо!!

2 ответа

Решение

Я бы предположил, что хотя '&' запускает команду в фоновом режиме, когда вы выходите из своего терминала, она все еще получает SIGHUP. Вы можете использовать команду disown

disown предотвращает отправку текущей оболочкой сигнала HUP каждому из заданных заданий, когда текущая оболочка завершает сеанс входа в систему.

Если задание опущено, используется последнее запущенное или остановленное фоновое задание.

Рори ответ хорошо, но добавив --fork пометить к вашему mongod вызов будет держать его в фоновом режиме.

Вот для чего нужен nohup!

Если он существует в вашем дистрибутиве, это простой способ, плюс он позволяет вам вести файл журнала.

Другие вопросы по тегам