আমার এসএসএইচ সংযোগটি ড্রপ হয়ে গেলেও কি আমার মাইএসকিউএল কোয়েরি চলতে থাকবে?


16

আমি এসএসএইচ-এর মাধ্যমে একটি সার্ভারের সাথে সংযুক্ত হয়েছি এবং মাইএসকিএল-এ লগ ইন করেছি এবং এটি একটি ক্যোয়ারী চালাতে বলেছে (যার ফলাফলগুলি একটি সিএসভিতে ফেলে দেওয়া হয়) যা এক ঘন্টারও বেশি সময় নিতে পারে। যদিও আমি আমার ক্লায়েন্টকে অধিবেশনটি সক্রিয় রাখতে প্রতি 60 সেকেন্ডে নাল প্যাকেট প্রেরণের জন্য নির্দেশনা দিয়েছি, তবুও আমি মাইএসকিএল কোয়েরি / প্রক্রিয়াটি শেষ করতে পারব বলে আমি বিদ্বেষযুক্ত, তাই আমার প্রশ্নগুলি হ'ল:

  1. বাতিল হওয়া ssh অধিবেশন (নিষ্ক্রিয়তার কারণে) কি mysql ক্যোয়ারী প্রক্রিয়াটিকে হত্যা করবে?
  2. এটি কীভাবে হবে তা আমি নিশ্চিত করতে পারি - নাল প্যাকেট কি প্রতি 60 সেকেন্ডের জন্য যথেষ্ট পরিমাণে প্রেরণ করা হয়?

উত্তর:


9

সর্বাধিক শেলগুলি প্রস্থান করার সময় অগ্রভাগ প্রক্রিয়া গোষ্ঠীতে SIGHUP প্রেরণ করে (এবং কিছু ক্ষেত্রে, ব্যাকগ্রাউন্ড প্রক্রিয়াগুলিতেও এটি শেল বিকল্পের সাহায্যে নিয়ন্ত্রণ করা হয় huponexit), এটি আপনার মাইএসকিএল ক্লায়েন্ট কীভাবে পরিচালনা করে তার উপর নির্ভর করে এটি মারা যেতে পারে।

nohupআপনার শেলটি প্রস্থান করে কিনা তা শেলটি প্রস্থান না হলে আপনার ডিপ দ্বারা এটি পুনঃসংশ্লিষ্ট করার জন্য আপনার কমান্ডটি প্রিপেন্ড করা চালাতে পারেন, আপনার শেলটি সিএইচইপআপ প্রেরণ করে কিনা তা নির্বিশেষে (ইনি দ্বারা পুনরুদ্ধার করা বিশেষত নোহুপের সাথে সম্পর্কিত নয় - এটি ঠিক এটি তার পিতামাতাকে ছাড়িয়ে গেছে)।

সম্ভবত আরো একটি রুচিকর সমাধান ব্যবহার করতে হবে tmux, screen, dtachবা ক্লায়েন্টের চালানোর জন্য অনুরূপ আপনার শেল এবং টার্মিনাল নিয়ন্ত্রণ থেকে দূরে আনমনা। এইভাবে, যদি আপনার শেলটি সংযোগ বিচ্ছিন্ন হয়ে যায়, আপনি কেবল সেশনটির সাথে আবার সংযোগ স্থাপন করুন যেখানে আপনি কোয়েরিটি চালাচ্ছিলেন।

সাধারণভাবে রক্ষণশীল প্যাকেটগুলির কোনও বিষয় নেই, সংযোগ কেবল অকারণে শেষ হবে না। আরও গুরুত্বপূর্ণ উদ্বেগ হ'ল ক্লায়েন্ট এবং সার্ভারের মধ্যে অন্যান্য কারণে (নেটওয়ার্ক ব্যর্থতা, ইত্যাদি) এর সংযোগ হ্রাস পাবে।


ধন্যবাদ! কেবলমাত্র স্পষ্টতার জন্য, আমি মাইএসকিএল-এর মধ্যে প্রকৃত ক্যোয়ারী চালাচ্ছি - তাই যতক্ষণ আমি মাইএসকিএল-এ nohupলগ ইন করার আগে প্রেন্ডেন্ড করব, এটি কি ভিতরে থাকা প্রশ্নগুলি চালিয়ে যাবে?
এনজেপি

1
@ এনজেপি আপনি যদি ইন্টারেক্টিভভাবে চালনা করতে চান তবে আপনার পক্ষে খুব nohupবেশি কাজে লাগবে না, যেহেতু মাইএসকিএল আরপিএল টার্মিনালের সাথে সংযুক্ত থাকবে না। পরিবর্তে আমি উল্লিখিত মাল্টিপ্লেক্সারের একটি (বা dtach) ব্যবহার করার চেষ্টা করুন, তারা সম্ভবত আপনার প্রয়োজনের সাথে আরও ভাল মানাবে।
ক্রিস ডাউন

2

আমি screenএকটি বাক্সে প্রবেশ করার পরে আমি সেশনগুলি শুরু করেছি , আংশিকভাবে এটি প্রতিরোধ করতে এবং যুক্ত বোনাস হিসাবে, আমি একাধিক ট্যাব পেয়েছি, এটি পরাতে পারি না। যদি আমি কোনও কারণে সংযোগ বিচ্ছিন্ন হয়ে থাকে তবে আমি আমার স্ক্রিন সেশনে পুনরায় সংযোগ করতে পারি।

হালনাগাদ

# 2 উত্তর দেওয়ার জন্য, আমি mysqlস্ক্রিন সেশনের মাধ্যমে ব্যাশ শেলের মধ্যে থেকে দৌড়াব। জটিল মনে হচ্ছে, তবে এটি ঠিক:

$: screen
$: mysql

আপনি স্ক্রিন সেশনের নীচে ক্যাপশন যুক্ত করতে আপনার ~ / .screenrc ফাইলটি সম্পাদনা করতে পারেন যাতে আপনি নিজের ট্যাবগুলি ট্র্যাক রাখতে পারেন, আপনার ট্যাবগুলির নাম পরিবর্তন করতে পারেন ইত্যাদি you're

$: screen -d

এবং এটি কোনও বিচ্ছিন্ন সেশন দেখায় will পুনরায় সংযোগ স্থাপন করতে, কিছু সহজভাবে চালান

$: screen -r 551.pts-0.git

বা স্ক্রিন সেশন এর আইডি যাই হোক না কেন। আপনি যেখানেই চলে গেছেন ঠিক সেখানেই এসেছেন। আপনাকে অবশ্যই screen -dএকই ব্যবহারকারীর মতো চলতে হবে যা স্ক্রিন সেশনটি শুরু করেছিল, যদিও কেবলমাত্র ফাই, বা অবশ্যই অবশ্যই। আমি সত্যই নিশ্চিত নই কারণ আমি সর্বদা shুকে যাওয়ার পরে sudo su -যাতে প্রতিটি কমান্ডে সুদ করতে হয় না।


1
ব্যবহারের পরামর্শটি দুর্দান্ত হলেও এটি screenওপি দ্বারা তালিকাভুক্ত দুটি প্রশ্নের সরাসরি উত্তর দেয় না।
বরুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.