Komut satırı ile bir php komut dosyası çalıştırmak (ve çıkıyor sonra çalışmasını sağlamak) için nasıl

3 Cevap php

Ben komut satırı ile benim uzaktan Virtual Private Server bir php komut dosyası çalıştırmak için çalışıyorum. Ben takip süreci:

  1. PuTTY kullanarak sunucuya oturum açın
  2. Komut satırı istemi, yazın> php myScript.php Açık

Komut sadece iyi çalışır. AMA SORUN komut kısa sürede ben PuTTY konsol penceresini kapatmak gibi çalışmasını durdurur olmasıdır.

Ben durmadan çalıştıran tutmak için komut dosyası gerekir. Bunu nasıl yapabilirim? Ben sunucu üzerinde Debian kullanıyorum.

Şimdiden teşekkürler.

3 Cevap

Ben yani nohup komutunu kullanın, Ben doğru cevabı vardır inanıyorum. nohup nohangup açılımı ve program macun oturumu üzerinden oturum açarak veya zaman aşımına olmuştur çünkü ya kesildiğinde olduğunuzda üretilen bir mesele sinyali görmezden gerektiği anlamına gelir.

Eğer komutun çıktısı (izinler geçerli dizinde nohup.out oluşturmasını engelleyen ya da eğer $ HOME / nohup.out) nohup.out adlı geçerli dizinde bir dosyaya eklenecek farkında olmak gerekir. Program çıktı bir sürü oluşturur, o zaman bu dosyayı alternatif başka bir dosyaya script çıktı yönlendirmek kabuk yönlendirmeyi kullanabilir, çok büyük alabilirsiniz.

nohup php myscript.php >myscript.output 2>&1 &

Bu komut, komut dosyasını çalıştırın ve programı çalıştırmak her zaman yeniden oluşturulur dosya myscript.output için (standart ve hata ikisi de) tüm çıktıyı göndereceğiz.

Nihai ve Çalışıyorsa ya da çıkış iken başka şeyler yapmak, böylece komut arka planda çalışmasına neden olur.

Kolay bir yolu nohup olsa çalıştırmak için:

nohup php myScript.php &

Eğer php komutunu çalıştırırsanız, bir sen konsolu kapattığınızda screen , detach the screen, o zaman sona ermeyecektir.

Ekranı bir fiziksel terminali aracılığıyla birçok süreçlerini yönetmek için izin verir bir terminal çoklayıcı olduğunu. Her süreç kendi sanal penceresi alır, ve her süreç ile etkileşim sanal pencereler arasında sıçrama olabilir. Ekranın tarafından yönetilen süreçler onların pencere aktif değilken çalışmaya devam.