জিএনইউ / লিনাক্সে কোনও প্রক্রিয়া একটি নির্দিষ্ট নাম দিচ্ছেন?


10

আমি কীভাবে কোনও প্রক্রিয়া চালু করব যাতে এটির psকমান্ডে একটি নির্দিষ্ট সনাক্তকারী থাকে ?

ইউপিডি : আমার একটি বাক্সে বেশ কয়েকটি সার্ভার চলছে। তাদের বেশিরভাগই মোতায়েন মোডে। তবে একটি উন্নয়নশীল in সমস্ত সার্ভার পাইথোনিক এবং রোগটি হ'ল সমস্ত সার্ভারগুলি তালিকাভুক্ত করা pythonহয় ps, যা killallঅন্যকে অক্ষত রেখে বিকাশে একটিকে অসম্ভব করে তোলে ।

ইউপিডি : যেমন ডেভিড এবং জিএনইউক্স পরামর্শ দিয়েছিল আমি প্রতিটি সার্ভারের জন্য পাইথন ইন্টারপ্রেটার এবং ব্যাশ স্ক্রিপ্টগুলিতে সিমলিংক তৈরি করেছি।

উত্তর:


7

একটি সিমিলিংক তৈরি করার কৌশলটি করা উচিত, তবে আমরা যদি রোগটি জানতাম এবং উপসর্গটি না জানতাম তবে এটি আরও সহায়ক হবে। আপনি ঠিক কি করতে চেষ্টা করছেন? কারণ এর চেয়ে আরও ভাল উপায় আর হতে পারে

gnuix@defiant)-(08:11pm-:-06/10)--
(~)./0012
my weird program name
  PID TTY          TIME CMD
 7805 pts/1    00:00:00 zsh
14020 pts/1    00:00:00 0012
14021 pts/1    00:00:00 ps
(gnuix@defiant)-(08:11pm-:-06/10)--
(~)ln -s 0012 weird
(gnuix@defiant)-(08:12pm-:-06/10)--
(~)./weird 
my weird program name
  PID TTY          TIME CMD
 7805 pts/1    00:00:00 zsh
14046 pts/1    00:00:00 weird
14047 pts/1    00:00:00 ps
(gnuix@defiant)-(08:12pm-:-06/10)--
(~)

আপডেট: অতিরিক্ত তথ্যের ভিত্তিতে আপনি করতে পারেন (আমি নিশ্চিত যে এর চেয়ে সহজ উপায় আছে তবে এই মুহূর্তে এটি আমার কাছে আসে না) আপনার সার্ভারগুলি প্রারম্ভের পরে কোনও পিআইডি একটি ফাইলে লিখতে পারে, তবে আপনি মারতে পারবেন -9 | বিড়াল /var/run/devserver.pid কিন্তু তারপরে এটি একটি প্রোগ্রামিং প্রশ্ন হতে পারে :)

আবার আপডেট করুন: সার্ভারগুলি চালু করার সময় আপনি পিআইডি পাওয়ার জন্য আপনি কিছু শেল ট্র্যাকারীও করতে পারেন, আমার মাথার উপরের দিক থেকে আপনি শার্ট ফাংশন তৈরি করতে পারেন উদাহরণস্বরূপ যা আপনার সার্ভারগুলি শুরু করার জন্য ব্যবহার করা কমান্ডটি আবৃত করবে তবে ধরও $! স্টার্টআপ নামের উপর ভিত্তি করে একটি ফাইলে - তারপরে আমরা শেল স্ক্রিপ্টিং সম্পর্কে কথা বলি যা 'ইনবাউন্ডস' @ সার্ভারফল্ট। :-)


4

আপনি যে বাইনারিটি চালাচ্ছেন তা আপনি নাম পরিবর্তন করতে পারেন। আপনি কেবল বাইনারিটিতে একটি সিমিলিংক ব্যবহার করে পালাতে পারেন।

আপনি যদি নামটি সত্যিই পরিবর্তন করতে চান তবে সবচেয়ে ভাল উপায় হ'ল একটি সহজ মোড়ক ব্যবহার করা যা আরগভি সেট করে এবং তারপরে আপনি চালিত করতে চান এমন প্রক্রিয়াটি কার্যকর করে। আপনাকে এখনই কিছু উদাহরণ কোড দেওয়ার সময় নেই, তবে প্রায় 10 ঘন্টাের মধ্যে জোরে চিৎকার করুন এবং আমি কী করব তা দেখতে পাচ্ছি।


ঠিক আমার বক্তব্য। এর জন্য আপনার কোড দরকার (বামনীর নাম পরিবর্তন / (সিএম) বাদ দিয়ে যা বাইনারি লিঙ্ক করে যা সমস্যা হতে পারে যদি এটি আরগভ [0] যাচাই করে তবে)
মার্টিন এম

কিছু বাইনেরিতে ভাল কাজ করে না হবে যদি আপনি সেই বেশিরভাগই এমবেডেড না (, busybox, dropbear)
nhed

3

https://github.com/electrum/procname । এটি আপনাকে পরিবেশের ভেরিয়েবল ব্যবহার করে যে কোনও প্রক্রিয়াটির প্রক্রিয়া নাম নির্ধারণ করতে দেয়।

ব্যবহার:

LD_PRELOAD এবং PROCNAME এনভায়রনমেন্ট ভেরিয়েবল সেট সহ জাভা চালান:

LD_PRELOAD = / পাথ / থেকে / libprocname.so PROCNAME = হ্যালো জাভা-জার foo.jar


2

এটি সত্যিই এসও তে অন্তর্ভুক্ত নয় কারণ এটি জেনেরিক, কোনও ভাষা নির্দিষ্ট প্রশ্ন নয়।

সংক্ষিপ্ত উত্তর সহজে হয় না। এটি হ'ল এটি আপনার শেল বা প্রোফস / সিএসএফ এর কার্যকারিতা থেকে করা যায় না। এটি অর্জনের জন্য আপনার একটি বাহ্যিক ইউটিলিটি ব্যবহার করতে হবে।

কীভাবে এবং কেন এখানে রয়েছে তার একটি দীর্ঘ বিবরণ রয়েছে । সতর্ক থাকুন এটি বেশ সি-কেন্দ্রিক।

হালনাগাদ:

তারা অজগর যা গেমটি পরিবর্তন করে। এখনই খুব বেশি না হয়ে এই মডিউলটি বা এর অনুরূপ পদ্ধতির ব্যবহারের জন্য তাদের সংশোধন করা আরও সহজ হবে।


স্পর্শ .. আমি জানতাম একটি সহজ উপায় আছে :)
GNUix

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