Nohup gagal dengan Anaconda ipython

Saya mencoba menjalankan kode menggunakan perintah "nohup" dengan Anaconda IPython. Kode saya berjalan dengan baik (berjam-jam) jika saya menjalankannya di dalam lingkungan ipython seperti;

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

Namun, ketika saya mencoba menjalankan kode yang sama menggunakan "nohup", kode tersebut rusak dengan pesan kesalahan berikut (2 baris terakhir). Ini disalin dari file keluaran.

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

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

Perintah nohup saya terlihat seperti ini;

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

File masukan saya terlihat seperti ini;

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

Saya tidak tahu di mana kodenya macet. Terimakasih atas bantuannya!

Yang terbaik, Abhi


person Abhishek    schedule 08.06.2018    source sumber
comment
Apakah skrip python Anda membaca sesuatu dari terminal?   -  person codeforester    schedule 09.06.2018
comment
Saya sedikit bingung dengan apa yang Anda tanyakan, saya memiliki beberapa subproses dan pernyataan cetak di skrip. seperti ini; subproses.run(['rm','-f','/home/aprakash/WISE_AP/url_list_dir_W1/merge_p1bm_frm']) subproses.run(['rm','-f','/home/aprakash/WISE_AP/ url_list_dir_W2/merge_p1bm_frm']) #!rm -rf {url_list_dir_w1}/* #!rm -rf {url_list_dir_w2}/* print(i) print(Gambar dan mask dihapus. Set berikutnya akan diunduh untuk posisi AGN berikutnya)   -  person Abhishek    schedule 09.06.2018


Jawaban (1)


Setiap kali Lingkungan Anaconda dimulai, ia akan menempel pada shell Anda, membuat ipython tersedia. (Hal ini juga berlaku untuk lingkungan default.) Tugas nohup adalah memisahkan proses dari shell tempat Anda memulainya.

Lakukan hal berikut: Tulis skrip shell, yang pertama-tama mengikat conda ke shellnya, dan kemudian memulai program Anda dengan ipython. Sadarilah, conda tidak mendukung semua shell, jadi gunakan bash. Versi saya terlihat seperti ini:

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

(Baris pertama menerapkan shell yang kompatibel dengan conda. Baris kedua saya mendapatkan dari Stackoverflow sendiri :) Di sini adalah cara lain untuk melakukan ini dengan menggabungkan dengan baris ketiga. Baris keempat adalah apa yang Anda berikan pada percobaan Anda sendiri.)

Simpan sebagai Filename.sh, mulai gunakan nohup:

chmod +x Filename.sh
nohup ./Filename.sh &
person Michael Dittmann    schedule 02.04.2019