আমার কাছে বাশ স্ক্রিপ্ট রয়েছে যা startup.sh
মূল লাইন দিয়ে পাইথন 3 স্ক্রিপ্ট শুরু করা যাক (আসুন এটি কল করুন ):
nohup python3 -u <script> &
আমি যখন ssh
সরাসরি এই স্ক্রিপ্টটিতে প্রবেশ করি এবং কল করি, তখন বাইরে বের হওয়ার পরে পাইথন স্ক্রিপ্টটি পটভূমিতে চলতে থাকবে। তবে, আমি যখন এটি চালাচ্ছি:
ssh -i <keyfile> -o StrictHostKeyChecking=no <user>@<hostname> "./startup.sh"
প্রক্রিয়াটি শেষ হয়ে যাওয়ার সাথে সাথে ssh
এটি শেষ হয়ে যায় এবং সেশনটি বন্ধ করে দেয়।
এই দুটির মধ্যে পার্থক্য কী?
সম্পাদনা: পাইথন স্ক্রিপ্ট বোতল মাধ্যমে একটি ওয়েব পরিষেবা চালাচ্ছে।
সম্পাদনা 2: আমি একটি এনআর স্ক্রিপ্ট তৈরি করার চেষ্টা করেছি যা কল করে startup.sh
দৌড়েছিল ssh -i <keyfile> -o StrictHostKeyChecking=no <user>@<hostname> "sudo service start <servicename>"
, কিন্তু একই আচরণ পেয়েছে।
সম্পাদনা 3: সম্ভবত এটি স্ক্রিপ্টের অন্য কিছু। এখানে স্ক্রিপ্টের বেশিরভাগ অংশ রয়েছে:
chmod 700 ${key_loc}
echo "INFO: Syncing files."
rsync -azP -e "ssh -i ${key_loc} -o StrictHostKeyChecking=no" ${source_client_loc} ${remote_user}@${remote_hostname}:${destination_client_loc}
echo "INFO: Running startup script."
ssh -i ${key_loc} -o StrictHostKeyChecking=no ${remote_user}@${remote_hostname} "cd ${destination_client_loc}; chmod u+x ${ctl_script}; ./${ctl_script} restart"
সম্পাদনা 4: আমি যখন শেষ প্রান্তে ঘুম দিয়ে শেষ পংক্তিটি চালাই:
ssh -i ${key_loc} -o StrictHostKeyChecking=no ${remote_user}@${remote_hostname} "cd ${destination_client_loc}; chmod u+x ${ctl_script}; ./${ctl_script} restart; sleep 1"
echo "Finished"
এটি কখনও পৌঁছায় না echo "Finished"
এবং আমি বোতল সার্ভার বার্তাটি দেখি, যা আমি আগে কখনও দেখিনি:
Bottle vx.x.x server starting up (using WSGIRefServer())...
Listening on <URL>
Hit Ctrl-C to quit.
আমি নিজেই এসএসএইচ প্রবেশ করি এবং প্রক্রিয়াটি নিজেই মেরে ফেললে আমি "সমাপ্ত" দেখতে পাচ্ছি।
EDIT5: EDIT4 ব্যবহার করে, আমি যদি কোনও শেষ পয়েন্টে একটি অনুরোধ জানাই, তবে আমি একটি পৃষ্ঠা ফিরে পেয়েছি, তবে বোতলটির ত্রুটিগুলি রয়েছে:
Bottle vx.x.x server starting up (using WSGIRefServer())...
Listening on <URL>
Hit Ctrl-C to quit.
----------------------------------------
Exception happened during processing of request from ('<IP>', 55104)
strace
লিনাক্স ব্যবহার করছেন বা truss
আপনি যদি সোলারিস চালাচ্ছেন এবং এটি কীভাবে / কেন সমাপ্ত হয় তা দেখুন under যেমন উদাহরণস্বরূপ ssh -i <keyfile> -o StrictHostKeyChecking=no <user>@<hostname> strace -fo /tmp/debug ./startup.sh
।
&
স্টার্ট আপ স্ক্রিপ্টের শেষে ব্যবহার করার চেষ্টা করেছিলেন? জোড় যোগ করা &
আপনার এসএস সেশনের নির্ভরতা পিতামাতাদের আইডি হওয়ার থেকে দূরে সরিয়ে দেয় (যখন প্যারেন্ট আইডস মারা যায় তাদের সন্তানদেরও হয়)। এছাড়াও আমি এই আগের পোস্টের উপর ভিত্তি করে এটি একটি সদৃশ প্রশ্ন মনে করি । পূর্ববর্তী বাক্যে আমি আপনাকে যে পোস্টটি জমা দিয়েছি তা হ'ল এই পোস্টের সদৃশ যা আরও বিশদ বিবরণ দিতে পারে।
nohup ./startup.sh &
আগেও চেষ্টা করেছি , তবে এর একই ব্যবহার ছিল। startup.sh
ইতিমধ্যে একটি কাঁটাচামচ রয়েছে ( nohup python3 -u <script> &
), সুতরাং আমি নিশ্চিত যে আমার আর কাঁটাচামচ করার দরকার নেই।