এনফএস মাউন্ট করার আগে ক্রন্টব চালাচ্ছে


9

ক্রোনজব @ রিবুট চালানো সেই ফাইলটিকে এনএফএস শেয়ারে উপস্থিত করে না।

উদাহরণ

@reboot python /abs/path/to/script.py

প্রারম্ভকালে ক্রোনটব থেকে মেল "কম বা কম" পড়ে

/usr/bin/python can't open file "/abs/path/to/script.py": [Error No. 2] No such file or folder.

কোনও ঝামেলা ছাড়াই কমান্ড লাইন থেকে স্ক্রিপ্টটি চালানো যেতে পারে ..
তত্ত্বটি হ'ল মাউন্ট চালানোর আগে ক্রোনজব চলছে running
প্রশ্নসমুহ.

  1. এই তত্ত্বটি কি সঠিক?
  2. ড্রাইভটি মাউন্ট না করা অবধি চাকরিটি কাঁদতে বাধ্য করার কোনও উপায় আছে? কমান্ডের মধ্যে কেবল 60 টি ঘুম না দেওয়া ছাড়াও। ;) আমি এটি ইতিমধ্যে চেষ্টা করেছি, তবে এটি হিট এবং মিস হয়েছে এবং 100% সময় দ্রুত চালানোর জন্য আমার স্ক্রিপ্ট দরকার need

2
আপনি কোন বিতরণ ব্যবহার করছেন?
সোভেন

উত্তর:


16

আপনার কমান্ড কার্যকর করার আগে মাউন্টটি হয়েছে কিনা তা নিশ্চিত করতে আপনি মাউন্টপয়েন্ট কমান্ডটি ব্যবহার করতে পারেন উদাহরণস্বরূপ (ধরে নেওয়া / অ্যাবস মাউন্ট পয়েন্ট)

#!/bin/bash
while true
do
    if mountpoint -q /abs
        then
            /usr/bin/python /abs/path/to/script.py
            break
        fi
    sleep 10
done

3
+1 আমি কখনও শুনিনি mountpoint- এটি বেশ কার্যকর!
সেভেন

@ সেভেনডাব্লু একই। আমি এখন এটি দিয়ে কয়েকটি মুখ্য স্ক্রিপ্ট আপডেট করছি।
অ্যারন কোপলি

সিস্টেমটি পুনরায় চালু হওয়ার সময় থেকে এটিকে উত্তর হিসাবে নির্বাচন করা, আমরা এমনকি জানে না যে এনিক সিস্টেমটি মাউন্ট করার চেষ্টা করছে এবং এনআইসি প্রস্তুত হওয়ার আগে ফাইল সিস্টেম মাউন্ট করার চেষ্টা করা বিপর্যয়কর হতে পারে।
মরিচা ওয়েবার

4

নেটওয়ার্কের পরে ক্রোন শুরু হওয়ার পরে সমস্যাটি কী তা আমি নিশ্চিত নই। (লাল টুপি ও ডেরিভেটিভস মধ্যে অন্তত।) আপনার মাউন্ট হয় /etc/fstabসঙ্গে _netdevবিকল্প বা অন্য কোথায়?

শুরু করার সময় কোনও কিছু কার্যকর করার মানক উপায় হল এটি অন্তর্ভুক্ত করা /etc/rc.local। নেটওয়ার্কটি শুরু হওয়ার পরে এবং অন্যান্য সমস্ত পরিষেবা শুরু হওয়ার পরে এটি চালানো হবে। (দূরবর্তী ফাইল সিস্টেমের মাউন্ট সহ)

(বা কেবল আক্ষরিক পুনরায় বুট করার পরে স্ক্রিপ্টটি কার্যকর করার কোনও কারণ আছে?)


হ্যাঁ ভাগ fstab মাউন্ট করা হয়। আমি উবুন্টুতে চলছিলাম, যার অর্থ নেটওয়ার্কিং চলছে না। ইত্যাদি।
রাস্টি ওয়েবার

1

আপনার জন্য এখানে কিছু ধারণা দেওয়া হল:

  1. এনএফএস মাউন্ট করা আছে কিনা তা পরীক্ষা করে দেখুন। যদি তা না হয় তবে এটি মাউন্ট করুন, তারপরে আপনার স্ক্রিপ্টটি চালান:

    [ ! -f /abs/path/to/script.py ] && mount -t nfs device dir && python /abs/path/to/script.py

  2. আপনার স্ক্রিপ্টটি start()এনএফএস ইন্ডি স্ক্রিপ্টের ফাংশনে চালান :

    echo -n $"Starting NFS mountd: "
    daemon rpc.mountd $RPCMOUNTDOPTS
    RETVAL=$?
    echo
    [ $RETVAL -ne 0 ] && exit $RETVAL || python /abs/path/to/script.py
    

1

পাইথন স্ক্রিপ্টটি চালাতে সক্ষম কিনা তা পুরোপুরি নিশ্চিত হয়ে। মাউন্ট পয়েন্ট উঠে এসেছে তা যাচাই করতে আপনাকে এটিকে স্থানীয় স্টোরেজে থাকা কোনও স্ক্রিপ্টে আবৃত করতে হবে।

এর মতো কিছু (সতর্কতা ছদ্ম কোড):

while (!ScriptExists && ErrorCount < 10)
do
    mount /my/mount/point
    sleep 10
    ErrorCount++
done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.