রুট ব্যতীত অন্য একটি ব্যবহারকারী হিসাবে সিস্টেমড সার্ভিস চালাচ্ছেন!


18

আমি নিম্নলিখিত পরিষেবাগুলি amos.service তৈরি করেছি এবং এটি আমোস হিসাবে চালানো দরকার (আমোস গ্রুপের সদস্য)

[Unit]
Description=AMOS Service
After=network.target

[Service]
User=amos
Group=amos
Type=simple
WorkingDirectory=/usr/share/amos
ExecStart=/usr/share/amos/amos_service.sh start
ExecStop=/usr/share/amos/amos_service.sh stop
Restart=on-failure

[Install]
WantedBy=multi-user.target

সমস্ত অনুমতি সেট করা হয়েছে /usr/share/amosথেকেamos:amos

amos_service.sh নিম্নরূপ:

#!/bin/bash

CUDIR=$(dirname "$0")
cd /usr/share/amos

start() {
  exec /usr/share/amos/run_amos.sh >> /var/log/amos.log 2>&1  
}

stop() {
  exec pkill java 
}

case $1 in
  start|stop) "$1" ;;
esac

cd "$CURDIR"

আমি যখন ডিরেক্টরিগুলিতে কোনও সংশোধন ছাড়াই পরিষেবাটি চালিত করি, যার অর্থ, মূলের অন্তর্ভুক্ত, এবং amos.service ব্যবহারকারী না থাকায় গ্রুপ প্যারামিটার না থাকে, সমস্ত কিছুই দুর্দান্ত!

আমি একবার ডিরেক্টরিগুলির অনুমতিগুলি আমোসগুলিতে পরিবর্তন করি: আমোস এবং amos.service ব্যবহারকারী ও গোষ্ঠী যুক্ত করিলে সার্ভটি কাজ করবে না এবং আমি নিম্নলিখিতটি পাই: সংযুক্ত চিত্র দেখুন

পরিষেবা চালানোর চেষ্টা করার পরে ত্রুটি


/Var/log/amos.log লগ ইন করা বার্তাগুলির ক্ষেত্রে সাফল্য এবং ব্যর্থতার ক্ষেত্রে কী পার্থক্য রয়েছে?
সোর্সজেডি

এছাড়াও, এই কনফিগারেশনটি বিজোড় যা /var/logরুটের মালিকানাধীন। আমি মনে করি আপনি /var/log/amos/আমোজের মালিকানাধীন তৈরি একটি ডিরেক্টরি ব্যবহার করতে চান ।
সোর্সজেডি

আমি উল্লিখিত হিসাবে তৈরি করব এবং ফলাফলগুলিতে ফিরে আসব
itprguy

উত্তর:


11

সিস্টেমড ব্যবহার করুন:

আপনি journalctl -xeপরিষেবাটি শুরু করার পরে সমস্যাটি দেখানোর জন্য ।

আপনার কোনও বাশ স্ক্রিপ্টের দরকার নেই, এটি আপনার পরিষেবা ফাইলে রাখুন:

ExecStart=/usr/share/amos/run_amos.sh

প্রয়োজন নেই ExecStop, সিস্টেমে সমস্ত শিশু প্রক্রিয়া বন্ধ করে দেবে। আপনি আউটপুট সাথে দেখতে পারেন journalctl -u amos.service


4
এক্সেকস্টার্টের পরে একটি "=" থাকা উচিত। আমি এটি ঠিক করতে পারছি না কারণ সম্পাদনাটি 6 টির চেয়ে কম অক্ষরের হবে।
মার্ক স্টসবার্গ

5

আমি মনে করি আপনি সহজ পরিবর্তে কাঁটাচামচ করতে চান। সাধারণ ধরে নেয় আপনার প্রক্রিয়াটি প্রস্থান করে না, সুতরাং যখন এটি হয়, তখন এটি প্রক্রিয়াটিকে মৃত বলে।

আপনি সম্ভবত amos_service.sh স্ক্রিপ্টটি সরাতে এবং এর কার্যকারিতাটি amos.service এ রেখে দিতে চান।


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