Nohup ล้มเหลวกับ Anaconda ipython

ฉันกำลังพยายามเรียกใช้โค้ดโดยใช้คำสั่ง "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 

ไม่รู้ว่าโค้ดมันติดตรงไหน ขอบคุณที่ช่วยเหลือ!

ดีที่สุดครับคุณอภิ


person Abhishek    schedule 08.06.2018    source แหล่งที่มา
comment
สคริปต์ python ของคุณอ่านอะไรจากเทอร์มินัลหรือไม่?   -  person codeforester    schedule 09.06.2018
comment
ฉันสับสนเล็กน้อยเกี่ยวกับสิ่งที่คุณถาม ฉันมีกระบวนการย่อยและพิมพ์คำสั่งในสคริปต์ แบบนี้; subprocess.run(['rm','-f','/home/aprakash/WISE_AP/url_list_dir_W1/merge_p1bm_frm']) subprocess.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(รูปภาพและมาสก์ถูกลบออก ชุดถัดไปจะถูกดาวน์โหลดสำหรับตำแหน่ง AGN ถัดไป)   -  person Abhishek    schedule 09.06.2018


คำตอบ (1)


เมื่อใดก็ตามที่ Anaconda Environment เริ่มต้นขึ้น มันจะเกาะติดกับเชลล์ของคุณ ทำให้สามารถใช้งาน 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 &
person Michael Dittmann    schedule 02.04.2019