2011-03-02 16 views
35

İşimi yürütmek için bu komutu kullanıyorum.Linux'ta arka plan işlemi olarak çalıştırmak için nohup'u nasıl kullanabilirim?

(time bash executeScript 1 input fileOutput $> scrOutput) &> timeUse.txt 

1, bu işi çalıştırmak için kullandığım bir süreçtir. Her çalışma için işlem sayısını değiştirmem gerekiyor. Her seferinde tamamlamak için uzun zaman kullanır. Sonra arka plan işlemi olarak çalıştırmak istiyorum.

Bunu nasıl yapabilirim?

nohup ((time bash executeScript 1 input fileOutput $> scrOutput) &> timeUse.txt) 

Ama çalışmıyor:

denedim.

cevap

5
  • Kullanımı ekranında: Senaryonu basın Ctrl + A, D, screen başlatın başlatın. screen -r ile yeniden bağlayın.

  • bir parametre olarak "1" alan bir senaryo yapın nohup yourscript çalıştırın: Genelde

    #!/bin/bash 
    (time bash executeScript $1 input fileOutput $> scrOutput) &> timeUse.txt 
    
48

, bir nohup plan işlemi çalıştırmak için nohup CMD & kullanın. Ancak, komut nohup kabul etmeyecek bir formda olduğunda, ben bash -c "..." aracılığıyla çalıştırın. Örneğin

: Stderr ve time çıkış time_n_err.out gider iken komut dosyasından

nohup bash -c "(time ./script arg1 arg2 > script.out) &> time_n_err.out" & 

stdout script.out yazılır alır.

Yani, sizin durumda:

nohup bash -c "(time bash executeScript 1 input fileOutput > scrOutput) &> timeUse.txt" & 
19

Bir senaryo yazabilir ve sonra Örneğin

yürütmek için nohup ./yourscript & kullanın:

#!/bin/bash 
script here 

koymak

vi yourscript 

Ayrıca sunucuda komut dosyasını çalıştırmak için izin değiştirmeniz gerekebilir

chmod u+rwx yourscript 

nihayet

nohup ./yourscript & 
İlgili konular