मैं यहाँ SSH पर इस तरह से एक कमांड चलाने की कोशिश कर रहा हूँ:
ssh example.com <<END
sudo /etc/init.d/apache2 reload
END
जब आम तौर पर काम करता है सिवाय इसके कि मैं कुछ चलाने की कोशिश कर रहा हूं, जिसमें इनपुट की जरूरत है, जैसे कि sudo के लिए पासवर्ड। उस स्थिति में, मुझे निम्न संदेश मिल रहा है:
sudo: no tty present and no askpass program specified
मुझे पता है कि मैं -t
इस तरह के रूप में एक छद्म tty आवंटित करने के लिए SSH पर ध्वज का उपयोग कर सकते हैं :
ssh -t example.com "sudo /etc/init.d/apache2 reload"
और यह काम करेगा, लेकिन जब मैं एक ही चीज़ यहाँ-दस्तावेज़ के साथ आज़माता हूँ, तो यह काम नहीं करता है और मुझे कोई त्रुटि नहीं होने के बारे में भी यही त्रुटि मिलेगी:
ssh -t example.com <<END
sudo /etc/init.d/apache2 reload
END
किसी भी विचार मैं यह काम कैसे कर सकता हूं?
इसके अलावा, यदि आप सोच रहे हैं कि मैं इसे एक ही लाइन पर पारित करने के बजाय यहाँ-दस्तावेज़ के साथ काम करना चाहता हूँ, तो ऐसा इसलिए है क्योंकि इनपुट कमांड्स (वहाँ कुछ हो सकता है) एक स्क्रिप्ट द्वारा पढ़ी गई कॉन्फ़िगरेशन फ़ाइल से आती है। और मैंने सुना है कि यह उद्धरण, दोहरे उद्धरण चिह्नों आदि के लिए आदेशों से बचने की परेशानी से बचा जाता है।