2009-03-04 11 views
10

मेरे पास एक लंबी PHP PHP स्क्रिप्ट है और जब भी मेरा इंटरनेट कनेक्शन दूसरे के लिए बाहर निकलता है तो ब्राउजर स्क्रिप्ट को रोकता है। मैं अपनी स्क्रिप्ट चलाने के लिए 8 घंटे तक नहीं बैठ सकता, इसलिए मुझे लगा कि मैं इसे एसएसएच के माध्यम से चला सकता हूं और अगले दिन वापस आ सकता हूं और अपनी आउटपुट फाइल प्राप्त कर सकता हूं। हालांकि एसएसएच में स्क्रिप्ट नामों को सरल टाइप करना काम नहीं लगता है। क्या एसएसएच के माध्यम से PHP स्क्रिप्ट चलाने के लिए एक विशेष कमांड है?मैं एसएसएच के माध्यम से एक PHP स्क्रिप्ट कैसे चला सकता हूं?

उत्तर

7

सामान्य तौर पर, आप इस

php myscript.php 

ssh के माध्यम से एक दूरस्थ होस्ट पर यह कर की तरह कमांड लाइन से स्क्रिप्ट चलाने के लिए सक्षम होना चाहिए इस

ssh [email protected] "php myscript.php" 
+0

और किसी भी रीडायरेक्ट की आवश्यकता है। – strager

1

कोशिश की तरह किया जा सकता है

php script.php. 

यदि यह काम नहीं करता है, तो आपको php निष्पादन योग्य का पता लगाना होगा और फिर इसे निष्पादित करना होगा।

बीटीडब्ल्यू, आप स्क्रीन का उपयोग कर सकते हैं, इसलिए यदि कंप्यूटर से कनेक्शन खो गया है, तो स्क्रिप्ट अभी भी चलती है।

+0

उपयोग स्क्रीन द्वारा आपका क्या मतलब है? मैंने कभी भी –

+0

के बारे में नहीं सुना है मैंने अपनी पोस्ट में स्क्रीन समझाई है: डी – Mez

+0

मुझे लगता है कि आप लिनक्स का उपयोग करते हैं। स्क्रीन एक ऐसा प्रोग्राम है जो शैल बंद होने पर भी प्रोग्राम चलाता रहता है। आप आसानी से सत्र को पुनर्स्थापित कर सकते हैं ताकि लिपि निरस्त नहीं हो सके। देखें http://www.gnu.org/software/screen/ – Ikke

0

वैकल्पिक रूप से आप केवल ignore_user_abort() पर कॉल कर सकते हैं और पृष्ठ को हिट करने के बाद अपने ब्राउज़र को बंद कर सकते हैं।

+0

इसके अलावा यह आवश्यक रूप से काम नहीं करेगा, और PHP बस इसके टाइमआउट पर रोक सकता है। – Mez

+0

असल में यह काम करेगा। यदि PHP टाइम सीमा खेल में आती है तो आप set_time_limit – Greg

+0

का उपयोग कर सकते हैं क्या अनदेखा_user_abort केवल तभी काम करता है जब php apache मॉड्यूल के रूप में चलाता है? – troelskn

19

यदि आपका इंटरनेट कनेक्शन बाहर निकल रहा है, तो शायद यह एसएसएच में भी एक समस्या होगी, और साथ ही, एक एसएसएच विंडो खोलने के लिए हमेशा सबसे अच्छी चीज नहीं होती है (यदि आप गलती से बंद करते हैं तो क्या होता है एसएसएच विंडो?)

मैं सर्वर में एसएसएचइंग का सुझाव दूंगा, फिर "screen" नामक एक प्रोग्राम चला रहा हूं, जो आपके कनेक्शन को छोड़ने के बावजूद जो कुछ भी आप चलाते हैं, उसे चलाना जारी रखेगा।

सर्वर में इस, पहले ssh करते हैं, और टाइप

screen

करने के लिए इस स्क्रीन को लोड होगा, स्वागत स्क्रीन

बायपास करने के लिए अब, अपने PHP स्क्रिप्ट चलाने दर्ज मारा

php /path/to/your/php/script.php

यह PHP चल रहा है,

अब आप विंडो बंद कर सकते हैं यदि आप चाहते हैं, और स्क्रिप्ट

चल वापस अपनी स्क्रीन सत्र के लिए प्राप्त करने के लिए पर रखेंगे, सर्वर से कनेक्ट, और चलाने के आदेश

screen -raAD

जो आपको अपने सत्र में दोबारा जोड़ देगा, जैसे कि आप खिड़की हर समय खुलेंगे।

यह वास्तव में, या यहाँ तक कि एक कंसोल आधारित आईआरसी सत्र चलाने के लिए घना स्क्रिप्ट को चलाने के लिए काफी अच्छा है: डी

4

क्या हर किसी ने कहा कि इसके अलावा, आप शायद के रूप में अच्छी nohup का उपयोग करना चाहेंगे।

ssh [email protected] "nohup php script.php" 

यह इसी तरह से चल रहा है, भले ही आपके ssh कनेक्शन चला जाता है रखेंगे। यदि आप चाहें तो nohup के स्थान पर आप screen का भी उपयोग कर सकते हैं।

0

nohup php -q /path-to-script/file.php & बाहर निकलने

php फ़ाइल निष्पादित और प्रक्रिया समाप्त बिना कंसोल बंद हो जाएगा।

संबंधित मुद्दे

 संबंधित मुद्दे