bash üzerinden linux tamamen ayrı bir kapak koyma işlemini yumurtlamaya

6 Cevap php

Ben diğer komutu hala çalışır ve kendi çıkar iken bir komut dosyası (bash veya perl veya php, herhangi yapacak) başka bir komut ve sonra çıkış yürütmek olması gerekir. Ben komut aracılığıyla zamanlama, ama daha kolay bir yolu olup olmadığını merak ediyordum olabilir.

6 Cevap

#!/bin/sh

your_cmd &

echo "started your_cmd, now exiting!"

Benzer yapılar perl ve php için var, ama sh / bash kendi arka planda başka bir komutu çalıştırmak ve devam etmek çok kolay.

edit

Genel işlem manipülasyon için çok iyi bir kaynak /etc/init.d altındaki tüm başlangıç ​​komut vardır. Bunlar komutları vb yeniden / durdurma / başlatma temel yürütme, pid'ler takip gibi düzgün hileler her türlü yapmak

Arka planda bir komutu çalıştırmak için, bir '&' ekleyebilirsiniz komuta.

Eğer oturumda geçmiş son programa ihtiyacınız varsa, kullanabilirsiniz nohup .

Bu Benzer stackoverflow tartışma bakınız: how to run a command in the background ...

&?

    #!/usr/bin/bash
    # command1.sh: execute command2.sh and exit
    command2.sh &

Bu sizin için ne arıyorsanız eğer tamamen emin değilim, ama arka komutun son karakteri olarak (&) işareti sembolü ekleyerek bir kabuk içinde yürütülen bir süreç olabilir.

Yani script, a.sh varsa

ve a.sh komut b.sh yürütmek demek gibi, ayrı bir işlem spawn gerekiyor, olur:

b.sh &

Bir komutu çalıştırmak ve dışarı oturum açtığınızda çalışmasını sağlamak için olağan yolu kullanmaktır nohup(1). nohup sırasında kabuk çıkar HUP sinyalinin alınması arasındaki belirli bir komutu engeller. Ayrıca işareti (&) komutu eki ile arka planda çalıştırmak için gereken.

$ nohup some_command arg1 arg2 &

Madem Perl belirtildiği gibi:

fork || exec "ls";

Nerede ... "ls" hiç bir şey değildir. Kapalı ateş gerekir gibi birçok komut için tekrarlayın.