কীভাবে একটি কাস্টম পরিষেবা তৈরি করবেন যা আর্চলিনাক্সের বুটে স্বয়ংক্রিয়ভাবে চালু হবে?


10

আমি আর্চলিনাক্স (সিস্টেমেড) শুরু করার পরে একটি সাধারণ কমান্ড চালাতে চাই:

nohup fatrat -n &

আমি ডেবিয়ান উপর এই কাজ পেয়েছি:

#! /bin/sh
# /etc/init.d/fatratWS

### BEGIN INIT INFO
# Provides: fatratWS
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: fatratWS init script.
# Description: Starts and stops fatrat Web Server services.
### END INIT INFO

#VAR
FATRAT_PID=$(ps aux | awk '/fatrat --nogui/ && !/awk/ && !/nohup/ {print $2}')

# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting script fatratWS"
if [ -z "$FATRAT_PID" ]; then
nohup fatrat --nogui &
echo "Started"
else
echo "fatratWS already started"
fi
;;
stop)
echo "Stopping script fatratWS"
if [ ! -z "$FATRAT_PID" ]; then
kill $FATRAT_PID
fi
echo "OK"
;;
status)
if [ ! -z "$FATRAT_PID" ]; then
echo "The fatratWS is running with PID = "$FATRAT_PID
else
echo "No process found for fatratWS"
fi
;;
*)
echo "Usage: /etc/init.d/fatratWS {start|stop|status}"
exit 1
;;
esac

exit 0

আমি কীভাবে অর্কে একই অর্জন করতে পারি?

আমি চেষ্টা করেছিলাম:

[Unit]
Description=Fatrat NoGui Web Access Service

[Service]
ExecStart=/usr/bin/nohup /usr/bin/fatrat -n &
Type=forking

[Install]
WantedBy=multi-user.target

ম্যানুয়ালি (টাইমআউট) শুরু করার সময় এটি শুরু করতে ব্যর্থ হয়

উত্তর:


14

এটা চেষ্টা কর:

[Unit]
Description=Fatrat NoGui Web Access Service
Requires=network.target
After=network.target

[Service]
ExecStart=/usr/bin/fatrat -n
Type=forking

[Install]
WantedBy=multi-user.target
  • আমি ধরে নিয়েছি যে একটি "ওয়েব অ্যাক্সেস পরিষেবা" এর নেটওয়ার্ক দরকার, তাই আমি প্রয়োজন হিসাবে নেটওয়ার্ক.টারাজেট যুক্ত করেছি।

  • নোহপ ব্যবহার করা অপ্রয়োজনীয় কারণ এই কার্যকারিতাটি সিস্টেমড নিজেই সরবরাহ করেছেন, 'এবং' এর জন্য একই।

  • যেহেতু আমরা আর Nohup ব্যবহার করি না, প্রকারটি সরল হয়ে উঠবে, তবে, গিট রিলিজটিতে উপলব্ধ ওয়েব ইন্টারফেসটি যদি আমরা এটি কাঁটা তৈরি না করে কাজ করে না।

  • সিস্টেমড সার্ভিস ফাইল সম্পর্কিত আরও তথ্যের জন্য "systemd.service" ম্যান পৃষ্ঠা এবং https://wiki.archlinux.org/index.php/Systemd#Writing_custom_.service_files দেখুন

  • ক্র্যাশ হলে এটি স্বয়ংক্রিয়ভাবে পুনরায় চালু করতে আপনি বিভাগে যুক্ত Restart=alwaysকরার কথা বিবেচনা করতে পারেন [Service]

  • পরিষেবা ফাইলটি রাখুন /etc/systemd/system/fatrat.serviceএবং এর মাধ্যমে স্বয়ংক্রিয়ভাবে স্টার্টআপের জন্য সক্ষম করুনsystemctl enable fatrat.service


আপনাকে ধন্যবাদ, এটি কাজ করে! আমার ব্যবহারকারীরূপে অ্যাপ্লিকেশনটি চালানোর জন্য বিভাগের User=my_user_nameঅধীনে যুক্ত হওয়া আমার কেবলমাত্র পার্থক্য ছিল [Service]। এইভাবে অ্যাপ্লিকেশনটি এর কনফিগারেশন ফাইলগুলি লোড করতে পারে/home/my_user_name/.local/share/fatrat/data
জৌডিসেক জৌদা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.