$HOME
স্ক্রিপ্টটি চালাচ্ছেন এমন ব্যবহারকারীর হোম ডিরেক্টরিকে নির্দেশ করে। সিস্টেমযুক্ত পরিষেবাগুলি রুট দিয়ে শুরু করা হয়েছে যাতে এটি সম্ভবত চেষ্টা করবে /root/theFolder/run.sh
। পরিষেবা ফাইলগুলিতে পরম পাথ ব্যবহার করুন।
আপনার কাছে forking
বিকল্প সেটও রয়েছে। প্রোগ্রামটির জন্য এটি প্রয়োজন যা তাদের পটভূমি, আপনার স্ক্রিপ্টটি কি এটি করে? বেশিরভাগ তা করেন না এবং যদি আপনার না করে তবে আপনি এই বিকল্পটি সরিয়ে ফেলুন বা সিস্টেমড আপনার স্ক্রিপ্টটির শুরু হিসাবে এটি দাবি শেষ করতে অপেক্ষা করবে।
আপনার হোম ডিরেক্টরিতে স্ক্রিপ্টগুলিতে নির্দেশ করে এমন সিস্টেম পরিষেবা ফাইলগুলি নিরুৎসাহিত করা এবং সম্ভবত একটি সুরক্ষা উদ্বেগ। যেহেতু এগুলি রুট হিসাবে চালিত হয় এগুলি যে কেউ এগুলি সংশোধন করতে পারে আপনার কম্পিউটারে সম্ভাব্যভাবে রুট অ্যাক্সেস অর্জন করতে পারে। স্ক্রিপ্টটি অনুলিপি করা /usr/local/bin
এবং এটি বন্ধ করার জন্য মূল দ্বারা এটি কেবল লেখার যোগ্য এবং এটি নিশ্চিত করা আরও ভাল। সার্ভিস ফাইলে User=
এবং Group=
অপশনগুলি ব্যবহার করে একটি অনিবদ্ধ ব্যবহারকারী হিসাবে স্ক্রিপ্টটি চালানো ভাল ধারণা ।
আপনি যদি এটি আপনার ব্যবহারকারী হিসাবে চালাতে চান তবে পরিষেবা ফাইলটি প্রবেশ করানো এবং ~/.config/systemd/user/
এটি দিয়ে / সক্ষম করা systemctl --user enable yourservice && systemctl --user start yourservice
(নোট, আপনার ব্যবহারকারীর রুট নয় হিসাবে চালানো) আরও ভাল। দেখুন এই ব্যবহারকারী সেবা ফাইল আরো তথ্যের জন্য।
systemctl daemon-reload
আপনার ইউনিট ফাইল তৈরির পরে চালিয়েছেন?