আমি ম্যাকোজে একটি শাটডাউন স্ক্রিপ্ট তৈরি করার চেষ্টা করছি (10.11) - এটি একটি স্ক্রিপ্ট যা শাটডাউনে চলে, ম্যাক বন্ধ করে না এমন স্ক্রিপ্ট নয় । লিনাক্স "আরসি" সিস্টেমটি ম্যাকোজে উপস্থিত নেই।
আমি একটি সমাধান অনুসন্ধান করেছি এবং অনুসন্ধান করেছি এবং এটিই কেবলমাত্র আমি সন্ধান করতে সক্ষম হয়েছি। এটি লঞ্চযুক্ত বুটে চালু হয় এবং প্রারম্ভকালীন এবং শাটডাউন উভয় ফাংশন যখন তাদের উচিত:
#!/bin/bash
function startup()
{
## commands to create and fill ram disk
tail -f /dev/null &
wait $!
}
function shutdown()
{
## commands to backup contents of ramdisk
exit 0
}
trap shutdown SIGTERM
startup;
যেমনটি আমি বলেছি, স্টার্টআপ () এবং শাটডাউন () ফাংশন দুটি প্রত্যাশিতভাবে চালিত হয়। সমস্যাটি শাটডাউন ফাংশনের কমান্ডের মধ্যেই রয়েছে। এটি একটি দুর্দান্ত সরল স্ক্রিপ্ট, এটি কেবলমাত্র রাম ডিস্কের সামগ্রীগুলি হার্ড ড্রাইভের একটি ফোল্ডারে অনুলিপি করে:
function backup_ramdisk()
{
## empty ram disk backup folder
rm -R -f /webfolder-backup/*
## copy contents of the ramdisk to the ramdisk backup
cp -R /Volumes/webfolder/ /webfolder-backup/
## make me the owner
chown -R me /webfolder-backup/
chmod -R 777 /webfolder-backup/
exit 0
}
আসল স্ক্রিপ্টটি অতিরিক্ত হিসাবে লোড হয় যা স্টাফ লগ করে এবং আমি নিশ্চিত করতে পারি যে পুরো স্ক্রিপ্টটি চলছে run তবে যা ঘটে তা হ'ল cp
লাইন ব্যর্থ। কখনও কখনও এটি সম্পূর্ণরূপে ব্যর্থ হয় এবং ব্যাকআপ ফোল্ডারটি খালি থাকে। তবে প্রায়শই এটি র্যাম ডিস্কের কাঠামোর অংশ হয়ে যায় এবং একই জায়গার চারপাশে (তবে ঠিক নয়) ফাইলগুলি অনুলিপি করা বন্ধ করে দেয়।
প্রায়শই এটি ত্রুটি ছুঁড়ে ফেলে cp: /Volumes/webfolder/: No such file or directory
যদিও এটি ইতিমধ্যে folder ফোল্ডারটি থেকে একশ আইটেম অনুলিপি করেছে। আমার স্ক্রিপ্টটির ব্যাক আপ শেষ করার আগে শটডাউন কমান্ডটি র্যাম ডিস্কটিকে আনমাউন্ট করে দিচ্ছে তা আমাকে ভাবিয়ে তোলে। মনে রাখবেন, কারণ এটি একটি র্যাম ডিস্ক, এটি সমস্ত ফাইল অনুলিপি করতে কেবল কয়েক সেকেন্ড সময় নেয়। তবে মনে হচ্ছে এটি যথেষ্ট নয়। আমার স্ক্রিপ্ট চলাকালীন আমি যদি শাটডাউন প্রক্রিয়াটি বিরতি দিতে পারে এমন কোনও উপায় ছিল, তবে এগিয়ে যান, এটি আদর্শ হবে! অথবা পুরোপুরি এর আরও ভাল পদ্ধতির হতে পারে?
tail -f /dev/null &
করতে tail -f /Volumes/webfolder/.handle
এবং অবশ্যই, অদৃশ্য আমার র্যাম ডিস্কে .handle নামক ফাইল তৈরি করা হয়েছে। র্যাম ডিস্কে একটি ফাইল খোলার লেজ হ'ল ধারণাটি এটিকে উন্মুক্ত রাখবে এবং স্ক্রিপ্টটি বের না হওয়া অবধি র্যাম ডিস্কটি বের করে দেবে না। এটি কাজ করে না ... তবে এটি সাহায্য করে। আমি ধারাবাহিকভাবে আরও ফাইলগুলি cp
লাইনটির সাথে অনুলিপি করছি । কিন্তু তারা সবাই না। সুতরাং আমি সঠিক দিকে যেতে পারি, আমাকে কেবল আরও কয়েক সেকেন্ডের জন্য র্যাম ডিস্কটি উন্মুক্ত রাখতে বাধ্য করা দরকার।