Tôi đang cố gắng chạy tập lệnh shell với lệnh nohup. Kịch bản lệnh shell lấy một mảng các tệp, chạy chương trình python trên mỗi tệp trong một vòng lặp và nối đầu ra vào tệp. Điều này làm việc tốt trên máy chủ, nhưng nếu tôi cố gắng sử dụng lệnh nohup nó không hoạt động. Tôi đã chạy thành công các chương trình khác bằng nohup trên máy chủ này, không phải kịch bản này. chương trìnhtập lệnh shell không hoạt động với nohup
#!/bin/sh
ARRAY=(0010.dat 0020.dat 0030.dat)
rm batch_results.dat
touch batch0.dat
touch batch_results.dat
for file in ${ARRAY[@]}
do
python fof.py $file > /dev/null
python mdisk5.py > ./batch0.dat
tail -1 batch0.dat
tail -1 batch0.dat >> batch_results.dat
done
này hoạt động tốt khi tôi chạy nó trong khi duy trì kết nối đến máy chủ, ví dụ
./batch.sh > /dev/null &
./batch.sh > ./output.txt &
Tuy nhiên, khi tôi cố gắng chạy nó với lệnh nohup,
nohup ./batch.sh > /dev/null &
nếu tôi thoát khỏi máy chủ và quay trở lại tập tin đầu ra (batch_results.dat) không có bất kỳ dữ liệu nào.
Tôi chắc chắn rằng tôi thiếu một số sửa chữa hoặc lệnh đơn giản tại đây. Bất kỳ ý tưởng?
Chỉnh sửa: Chương trình fof.py tạo hai tệp được sử dụng làm đầu vào cho mdisk5.py. Khi tôi thoát khỏi máy chủ trong khi chạy nohup, hai tệp này được tạo, nhưng chỉ cho tệp đầu vào đầu tiên '0010.dat'. Các tệp đầu ra batch0.dat và batch_results.dat vẫn trống.
đưa ra các '>/dev/null' để xem nếu có bất kỳ thông tin hữu ích nào được in? Ngoài ra, không nohup đặt bất kỳ đầu ra vào một tập tin 'nohup.txt' hoặc tương tự? Chúc may mắn. – shellter
Tôi không thể tìm thấy tệp nohup.txt trong thư mục làm việc. Điều này có đi đến một thư mục mặc định khác không? – ricitron
tài liệu nohup Tôi chỉ googled nói rằng đó là một trong hai dir hiện tại hoặc $ HOME. hãy thử điều này trên dòng lệnh 'man nohup' để xem chi tiết cụ thể cho hệ thống của bạn. Chúc may mắn. – shellter