দেবিয়ান: শেল স্ক্রিপ্টের 30 লাইন না লিখে স্টার্টআপে স্ক্রিপ্টটি কীভাবে চালানো যায়?


20

আমার একটি ডেবিয়ান সার্ভার রয়েছে এবং আমার শুরুতে একটি স্ক্রিপ্ট চালানো দরকার।

আমি এটি পড়েছি: https://www.debian-administration.org/article/28/ মেকিং_স্ক্রিপ্টস_আরুন_ট_ বুট_সময়ের_ও_ডিবিয়ান

আমি এখন পেয়েছি: অন্তর্নিহিত: সতর্কতা: স্ক্রিপ্টের হারিয়ে যাওয়া এলএসবি ট্যাগ এবং ওভাররাইডগুলি

সুতরাং দেখে মনে হচ্ছে আমাকে এখনই যুক্ত করতে হবে:

### BEGIN INIT INFO
# Provides:          scriptname
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

এটি এখন ক্রেজি মনে হচ্ছে: স্ক্রিপ্টের 30 লাইনের মতো শুরুতে কোনও প্রোগ্রাম চালানোর জন্য।

এমন কোনও সরঞ্জাম রয়েছে যা একটি সহজ উপায়ে করতে দেয়?

শুভেচ্ছা সহ


এটি কোন ধরণের স্ক্রিপ্ট? আপনি কি এটি /etc/rc.local থেকে চালানোর চেষ্টা করেছেন? আপনি rc.local ফাইলে স্ক্রিপ্টের পাথ রাখতে পারেন এবং এটি বুট করার সময় কার্যকর করা হবে।
ডায়াম্যান্ট

একটি সাধারণ স্ক্রিপ্ট যা নোড প্রক্রিয়া শুরু করে, পিএইচপি ইত্যাদি শুরু করে ...
ইয়ারেক

আমি 30 টি নয়, 9 টি লাইন গণনা করছি And এবং এগুলি মন্তব্য, শেল স্ক্রিপ্ট নয় (এবং এসএসএইচ স্ক্রিপ্ট নয়)।
13:25

এগুলি হ'ল এলএসবি শিরোনাম ( উইকি.ডিবিয়ান.আর.ইল.এস.আই.এন.এন.এস.পি. স্ক্রিপ্টস দেখুন ) এবং একটি এলএসবি আরআইপি স্ক্রিপ্ট বয়লারপ্লেট 70 লাইনের উত্তরে ( github.com/fhd/init-script-template/blob/master/template এর মতো জিনিস দেখুন )। আপনি যদি কম্পিউটারে বুট করার সময় হাতে থাকা কোনও একক কমান্ডটি / etc-তে কোনও ফাইলের মাধ্যমে পরিচালনা করতে চান তবে এটি বেশ বিস্তৃত অনুষ্ঠানের মতো মনে হয়!
ক্রিস্টোপলাস

উত্তর:


29

যদি আপনার স্ক্রিপ্টটি "কেবলমাত্র একটি স্ক্রিপ্ট", এবং ডেমন শুরু না করে তবে /etc/rc.local(রুট হিসাবে মৃত্যুদন্ড কার্যকর করা) বা crontab(আপনার পছন্দের ব্যবহারকারী হিসাবে মৃত্যুদন্ড কার্যকর করা) বিবেচনা করুন।

দুটি উদাহরণ:

  • /etc/rc.local

    #!/bin/sh -e
    #(Multiple lines of comments removed.)
    /usr/local/bin/your-script.sh
    exit 0
    
  • crontab(উদাহরণস্বরূপ, এর মাধ্যমে সম্পাদিত crontab -e)

    #(Multiple lines of comments removed.)
    @reboot /usr/local/bin/your-script.sh
    

সম্পাদনা 1: কেবল আপনার মন্তব্যটি পড়ুন: যদি আপনার স্ক্রিপ্টটি ডেমোন শুরু করে, যা সর্বদা চলতে থাকে, আমি rc.localবা ব্যবহার করার বিরুদ্ধে বা crontabতার পরিবর্তে একটি সঠিক (বা একাধিক) init.dস্ক্রিপ্ট (গুলি) লিখতে পরামর্শ দেব । আপনি / আপনার সিস্টেমটি পরিষ্কারভাবে পুনরায় চালু / রিলোড / স্টার্ট / স্টপ ইত্যাদি ডেমোনস সক্ষম করতে সক্ষম।

সম্পাদনা 2: আপনি এটিকে পাগল বলছেন, তবে সরবরাহটি LSB tagsকিছু মূল্য দেয়: "init.d স্ক্রিপ্টগুলির জন্য রান-টাইম নির্ভরতা ডকুমেন্ট করার মাধ্যমে, বর্তমান বুট ক্রমটি যাচাই করা সম্ভব হয়, এই নির্ভরতাগুলি ব্যবহার করে বুট অর্ডার করা যায় এবং এতে বুট স্ক্রিপ্টগুলি চালানো সম্ভব হয়" বুট প্রক্রিয়াটির গতি বাড়ানোর সমান্তরাল "। আরও তথ্যের জন্য, দেবিয়ান উইকিতে যান

(যাইহোক, এটি একটি সতর্কতা, সুতরাং আসলে এটি আপনার উপর নির্ভর করে, কীভাবে এবং কীভাবে এটি করা উচিত))


আমি ক্রন্টব সংস্করণটি পছন্দ করি .. তবে আমার মনে হয় না @ রিবুট ডেবিয়ানে কাজ করে!
ইয়ারেক

@ ইয়ারেক: এটি নিজে কাজ করে (স্ক্রিপ্টগুলির জন্য, যা কেবলমাত্র স্ক্রিপ্টগুলি)।
gf_

2
এটি কাজ করে, তবে আমি মনে করি এটি কেবল মূল ব্যবহারকারীর জন্যই তাই আপনাকে করতে হবে@reboot root /usr/local/bin/your-script.sh
ফ্রোগজিজ

বিটিডব্লিউ আমি ডিবিয়ান সম্পর্কে কথা বলছিলাম!
ফ্রোগজিজ

আমি এখনও সত্যই বেশ বিভ্রান্ত: ক্রোন কি সার্ভার পুনরায় আরম্ভ করার পরে, সেশনগুলি রুট হিসাবে খোলার সময় কোনও স্ক্রিপ্ট চালাতে সক্ষম করে?
ইয়ারেক

0

সুপারভাইজার এছাড়াও একটি বিকল্প। আপনার নোড.জেএস এবং পিএইচপি স্টাফ শুরু করতে আপনি আবার কিছু লাইন লিখবেন, তবে সেগুলি কম হবে।


0

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

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