আপস্টার্ট স্ক্রিপ্ট শুরু হয় না


33

উবুন্টু 10.04

আমি এই আপস্টার্ট স্ক্রিপ্টটি তৈরি করেছি ( /etc/init/pure-ftpd.conf ):

# pure-ftpd - FTP server

description "Pure-FTPd server"

start on filesystem
stop on runlevel S

respawn
respawn limit 10 5
pid file /var/run/pure-ftpd.pid
console output

pre-start script
    test -x /usr/local/sbin/pure-ftpd || { stop; exit 0; }
end script

exec /usr/local/sbin/pure-ftpd --maxclientsnumber 2 --maxclientsperip 10 --prohibitdotfileswrite --prohibitdotfilesread --noanonymous --chrooteveryone --dontresolve --nochmod --pidfile /var/run/pure-ftpd.pid

কিন্তু ...

# start pure-ftpd
start: Unknown job: pure-ftpd

এবং

# service pure-ftpd start
start: Unknown job: pure-ftpd


সমস্যা কি?
আরও কিছু করার দরকার কি?
/Etc/init.d তেও একটি স্ক্রিপ্ট তৈরি করা দরকার?


আমি একই ঝামেলা পেয়েছি। অনুগ্রহ করে কনসোল এ initctl কমান্ড চেষ্টা করুন। কনসোল সেশনে প্রবেশ করতে Ctrl + ALT + F1 টিপুন এবং লগইন করুন। (কেন আমি বুঝতে পারি না তবে আমি এইভাবে সফল

উত্তর:


26

এর অর্থ সাধারণত .confফাইলটিতে আপনার একটি ত্রুটি রয়েছে - উদাহরণস্বরূপ আমি নিশ্চিত নই যে এই pidপদটি 10.04-এ সমর্থিত, stopস্ক্রিপ্টে ব্যবহার করা যাবে না ইত্যাদি etc.

আমি (শুধুমাত্র সঙ্গে গোড়া থেকে ফাইল শুরু চেষ্টা চাই start, stopআরো এবং আরো লাইন যুক্ত করা এবং মাধ্যমে এটি পরীক্ষার দ্বারা এটা তৈরী ধীরে ধীরে ইত্যাদি), এবং তারপর start pure-ftpd

উদাহরণ স্বরূপ:

# cat pure-ftpd.conf 
start on filesystem
stop on runlevel S

respawn
respawn limit 10 5

# start pure-ftpd
pure-ftpd start/running

# cat pure-ftpd.conf 
start on filesystem
stop on runlevel S

respawn
respawn limit 10 5
pid file /var/run/pure-ftpd.pid

# start pure-ftpd
start: Unknown job: pure-ftpd

উইকির তথ্যগুলি খুব পুরানো ( upstart.ubuntu.com/wiki )। অন্যদিকে, লুসিডের আপস্টার্ট সংস্করণটি 0.6.5-8 এবং পিড ফাইলটি সমর্থন করা উচিত: upstart.ubuntu.com/wiki/…
জুয়ান সিমন

1
pidসংস্করণটির পর থেকে এএফআইকে স্তবকটি সরানো হয়েছে 0.5.0 2008-08-12 "One of those deaf-mutes"। এটি ব্যবহার করবেন না।
ব্যবস্থা করুন

কেউ জানেন যে আপডেট করা ডকুমেন্টেশন কোথায়?
জুয়ান সিমন

46

আপনি init-checkconfসিনট্যাক্স পরীক্ষা করতেও চালাতে পারেন

init-checkconf /etc/init/job.conf
File /etc/init/job.conf: syntax ok

1
কমান্ডটি 10.04-তে বিদ্যমান নয়, তবে এটি 12.04-এ বিদ্যমান।
মার্ক স্টসবার্গ

6
তবে এটি মাথাবিহীন উবুন্টু 12.04 সার্ভারে (এখনও) কাজ করে না। দেখুন bugs.launchpad.net/upstart/+bug/881885
FvD

1
বিষয়টি সরাসরি পাওয়া গেল! - startকমান্ডটি তৈরি করা উচিত যাতে এটি আপনাকে আরও তথ্যমূলক ত্রুটির বার্তা দেয় ...

26

প্রথমত, আপনি যাচাই করতে পারেন যে আপনার কাজটি আসলে আপস্টার্ট হিসাবে পরিচিত:

sudo initctl list | grep your_job_name

... your_job_nameআপনার আপস্টার্ট স্ক্রিপ্টের নামটি .confএক্সটেনশানটি কোথায় ।

যদি এটি না পাওয়া যায় তবে আপনি কনফিগারেশনটি পুনরায় লোড করার চেষ্টা করতে পারেন এবং তারপরে পুনরায় চেক করতে পারেন:

sudo initctl reload-configuration

# re-check
sudo initctl list | grep your_job_name

তারপরে আপনার কাজটি শুরু করার জন্য আবার চেষ্টা করুন:

sudo start your_job_name

আপনি যদি আগে /var/log/daemon.logবা কোনও লগইন না পেয়ে থাকেন তবে আপনার /var/log/syslogএখন কিছুটা থাকতে পারে।


1
এবং যদি এটি দেখায় যে বাক্যটি সিন্টেক্সটি সঠিক এবং এটি / etc / init এ বাস করা সত্ত্বেও কাজটি আপস্টার্ট হিসাবে পরিচিত না?
এফভিডি

1
আপনি কি পরামর্শ হিসাবে "sudo initctl পুনরায় লোড-কনফিগারেশন" চেষ্টা করেছেন? আপনি কি অনুমতি, লগ, ডক্স পরীক্ষা করেছেন?
মার্ক স্টোসবার্গ

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

1
এবং সব পরে অনুমতি ছিল! যদিও দির তালিকা করার সময় সমস্ত কিছু পীচি দেখাচ্ছিল, কেবলমাত্র একটি chmod 644 পরে স্ক্রিপ্টটি নেওয়া শুরু করেছিল। আবার ধন্যবাদ.
এফভিডি

1
মনে রাখবেন, আপনার_জব_নামটি ফাইলের .conf শেষ না করেই। আমাকে জানতে এক ঘন্টা সময় নিল
মার্সেল

6

আপনি যখন কমান্ডটি চালাবেন তখন কাজের ফাইল সিনট্যাক্সের জন্য সর্বাধিক প্রাসঙ্গিক রেফারেন্স পাওয়া যাবে:

man 5 init

আপনার সিস্টেমে উবুন্টু 10.04-র জন্য, আপনি আগের উত্তরে যেমনটি পেয়েছেন, পিড ফাইল সিনট্যাক্সটি ভুল।

যে কোনও সময় আপনি সেই 'অজানা কাজ' ত্রুটি ফিরে পেয়েছেন, লগগুলি চেক করা ভাল ধারণা (প্রাক 11.04, /var/log/daemon.log, 11.04 এবং আরও বেশি কিছু / var / লগ / সিসলোগে যায়)

আপনি এর মতো ত্রুটি দেখতে পাবেন:

init: /etc/init/test.conf:2: Unknown stanza

3

যাইহোক আমি এখানে আছি কারণ আমার একই সমস্যা ছিল তবে আমার বাক্য গঠনটি 100% সঠিক ছিল।

কিছু ডিবাগ করার পরে আমি অন্য একটি সমস্যা আবিষ্কার করেছি যা এই "অজানা কাজ" ত্রুটির কারণ হতে পারে :

upstarts ব্যবহারসমূহ inotify কাজ ইনস্টল করুন, এই খুব শান্ত .conf ফাইল পরিবর্তন এবং স্বয়ংক্রিয় নিরীক্ষণ করতে (এই জন্য আপনাকে ভুঁইফোড় সঙ্গে update.rc ভালো কিছু প্রয়োজন হবে না!) কিন্তু নিখুঁত হতে পারে, যদি ব্যবহার (যে ক্ষেত্রে আমার মত) আপনি দূরবর্তী সার্ভারগুলিতে কনফিগারেশনগুলি আপলোড এবং সম্পাদনা করার জন্য কিছু এফটিপি / এসসিপি জিইউআই প্রোগ্রাম, আপনি যখন সেই পদ্ধতিতে ফাইল সম্পাদনা করবেন তখন চাকুরীটি নীরবে নিরপেক্ষভাবে ইনস্টল করা যেতে পারে।

ঠিক করার জন্য কেবল এটি করুন (যা আমাকে রক্ষা করেছে)

touch /etc/init/*

এটি সমস্ত আপস্টার্ট কনফেসকে রিফ্রেশ করার জন্য ইনোটিফাই ইভেন্টগুলি তৈরি করবে।


2

আমার উবুন্টু 14.04 ডকারের ধারকগুলিতে আমার একই সমস্যা ছিল। যেমনটি দেখা যাচ্ছে, ডকারের জন্য উবুন্টু 14.04 চিত্র (অন্যথায় না হলে) একটি সম্পূর্ণ ভার্চুয়াল মেশিন যেমন উপস্টার্ট সমর্থন করে না।

এই প্রশ্নের উত্তর দেওয়ার জন্য, পরিষেবাটি কেন শুরু হয় না, কারণ কারণ initctl একটি প্রকৃত আপস্টার্ট প্রোগ্রাম নয়: এটি ম্যাপ করা হয় / বিন / সত্যে।

নিম্নলিখিতটি কোনও উবুন্টু 14.04 ডকার পাত্রে বনাম ভ্যাগ্রেন্ট এবং বনাম একটি ডিজিটাল ওশেন ড্রপলে চালনা যাচাই করতে

$ ls -al /sbin/initctl

আপনি দেখতে পাবেন যে ডিক্টর বনাম অন্যগুলিতে আর্টিক্টেল এক নয়।

এমন একটি লিঙ্ক যা আপনার বোঝাপড়া আরও বাড়িয়ে তুলতে পারে .. https://github.com/docker/docker/issues/1024


2
ডকারের সাথে একই সমস্যার মধ্যে দৌড়ে: সংক্ষেপে এবং সংক্ষেপে বলা যায়, ডকার একসাথে কেবল একটি প্রক্রিয়া চালায় যাতে এটি আপস্টার্ট এবং অন্য কিছু চালাতে পারে না। পরিষেবাটি / যখন এটি মারা যায় পুনরায় চালু করার বিষয়টি নিশ্চিত করার জন্য, আমি সুপারভাইজারটি ব্যবহার করে শেষ করেছি। পিএস: আপনার কোনও পাত্রে একাধিক পরিষেবা চালানো উচিত নয়: পাত্রে ব্যবহারের পুরো বিষয়টি হ'ল মাইক্রো সার্ভিস তৈরি করা, তাই পৃথক পাত্রে টুকরোগুলি তৈরি করুন এবং ডকার-কম্পোজের সাথে তাদের একত্রিত করুন
MrE

1
আমি কেবল এই নিবন্ধটিতে ছড়িয়ে পড়েছি এবং এটি উদ্বেগগুলি কীভাবে পৃথক করা যায় সে সম্পর্কে খুব ভাল পরামর্শ দেয়: blog.docker.com/2014/06/wy-you-dont-need-to-run-sshd-in-docker যা সম্ভবত এমনকি সুপারভাইজার ব্যবহার করার চেয়ে ব্যবহারের জন্য আরও ভাল কৌশল
মিঃ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.