Nohup не работает с Anaconda ipython - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь запустить код с помощью команды nohup с Anaconda IPython.Мой код работает нормально (в течение нескольких часов), если я запускаю его в среде ipython, например;

irsacf00-debian:~/WISE_AP> ipython
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: %run WISE_PHOT_052918_MODULER_IRSACF.py

Однако, когда я пытаюсь запустить тот же код с помощью «nohup», он выходит из строя со следующим сообщением об ошибке (последнее2 строки).Это копия, вставленная из выходного файла.

[[0;31mOSError^[[0m: [Errno 5] Input/output error

In [2]: Do you really want to exit ([y]/n)?

Моя команда nohup выглядит следующим образом;

irsacf00-debian:~/WISE_AP> nohup ipython <input_file> output_file &

Мой входной файл выглядит следующим образом;

%run /home/aprakash/WISE_AP/WISE_PHOT_052918_MODULER_IRSACF.py 

Iне могу понять, где код застревает.Спасибо за помощь!

Best, Abhi

1 Ответ

0 голосов
/ 02 апреля 2019

Всякий раз, когда запускается среда Anaconda, она прилипает к вашей оболочке, делая доступным ipython.(Это также верно для среды по умолчанию.) Задача nohup состоит в том, чтобы отделить процесс от оболочки, с которой вы его запускаете.

Выполните следующее: напишите сценарий оболочки, который сначала привязывает conda к своей оболочке, изатем запускает вашу программу с ipython.Имейте в виду, что conda поддерживает не все оболочки, поэтому используйте bash.Моя версия выглядит следующим образом:

#!/bin/bash
source /home/yOURuSERnAME/miniconda3/etc/profile.d/conda.sh
conda activate YourCondaEnvironment
ipython SomeProgramOfYours.py

(Первая строка обеспечивает необходимую conda-совместимую оболочку. Вторая строка, которую я получил от Stackoverflow себя :) Здесь это другой способделать это в сочетании с третьей строкой.Четвертая строка - это то, что вы дали nohup в своей собственной попытке.)

Сохранить как Filename.sh, начните использовать nohup:

chmod +x Filename.sh
nohup ./Filename.sh &
...