nohup komutuyla bir kabuk komut dosyası çalıştırmaya çalışıyorum. Kabuk betiği bir dizi dosya alır, her dosyada bir döngüde bir python programı çalıştırır ve çıktıyı bir dosyaya ekler. Bu sunucuda iyi çalışıyor, ancak nohup komutunu kullanmaya çalışırsam işe yaramıyor. Bu sunucuda nohup'u kullanarak diğer programları başarıyla çalıştırıyorum, sadece bu betikte değil.kabuk betiği nohup ile çalışmadı
#!/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
programı, sunucuya bağlı kalarak ederken nohup komutuyla çalıştırmayı denediğimde,
./batch.sh > /dev/null &
./batch.sh > ./output.txt &
Ancak örneğin çalıştırdığınızda çalışıyor
nohup ./batch.sh > /dev/null &
Sunucudan çıkıp çıktı dosyasına geri dönersem (batch_results.dat) herhangi bir veriye sahip değil.
Burada bazı basit düzeltmeler veya komutlar eksik olduğundan eminim. Herhangi bir fikir?
Düzenleme: Program fof.py mdisk5.py için girdi olarak kullanılan iki dosya üretir. Nohup çalışırken sunucudan çıktığımda, bu iki dosya üretilir, ancak yalnızca ilk giriş dosyası '0010.dat' içindir. Batch0.dat ve batch_results.dat çıktı dosyaları boş kalır. !
#/bin/sh
sh
diziler desteklemez:
da veri dosyalarının normal, boşluk ayrılmış bir dize kullanmak Herhangi bir yararlı bilgi yazdırılırsa? Ayrıca, nohup 'nohup.txt' veya benzeri bir dosyaya herhangi bir çıktı getirmiyor mu? İyi şanslar. – shellter
İş dizininde nohup.txt dosyasını bulamıyorum. Bu farklı bir varsayılan dizine gider mi? – ricitron
Sadece googled nohup belgelendirme, geçerli dir veya $ HOME olduğunu söyledi. Bunu sisteminizle ilgili özellikleri görmek için komut satırı 'man nohup' üzerinde deneyin. İyi şanslar. – shellter