Процесс, работающий в фоновом режиме, был убит в 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!
Если он существует в вашем дистрибутиве, это простой способ, плюс он позволяет вам вести файл журнала.