স্টাডাউট / স্ট্ডার স্টার্ট-স্টপ-ডেমনগুলিতে পুনর্নির্দেশ করে


8

আমি initকনফিগার লেখার চেষ্টা করছি যা আমার ডেমনটির আউটপুট দুটি ফাইলে পুনর্নির্দেশ করবে (স্টাডআউট এবং স্টডারর জন্য)। সমস্যাটি হচ্ছে, এটি কাজ করছে না। আমি পড়া করছি এই মুহূর্তে।

সুতরাং, আমি এই পদ্ধতির পরীক্ষা করতে এই শেল স্ক্রিপ্টটি করেছি। এবং এটি কাজ করে না:

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Seed kurokikaze starter"
#NAME=node
DAEMON="/etc/node-version/0.1.99/bin/node"
DAEMON_ARGS="/etc/seed/kurokikaze/server.js"
DAEMON_DIR="/etc/seed/kurokikaze"

APPLOG_FILE="/var/log/seed/kurokikaze"
ERRLOG_FILE="/var/log/seed/kurokikaze-err"

PIDFILE="/var/run/seeds/kurokikaze.pid"
SCRIPTNAME="/etc/seed-init/kurokikaze"

NCMD="exec $DAEMON $DAEMON_ARGS 1>>$APPLOG_FILE 2>>$ERRLOG_FILE"

start-stop-daemon -Sbmv --pidfile $PIDFILE --chdir ${DAEMON_DIR} --exec $DAEMON --startas /bin/sh -- $NCMD

তবে আপনি যদি পৃথক শেলের সাথে ডেমনটি মোড়ানো না করে এটি শুরু করেন তবে এটি উদ্দেশ্য হিসাবে কাজ করে (কেবল স্টেডার / স্টাডআউট পুনঃনির্দেশগুলি ছাড়াই):

start-stop-daemon -Sbmv --pidfile $PIDFILE --chdir ${DAEMON_DIR} --exec $DAEMON -- ${DAEMON_ARGS}

প্রশ্নটি: প্রথম স্ক্রিপ্টটি কেন কাজ করে না? সিস্টেমটি ডেবিয়ান লেনি, start-stop-daemonসংস্করণটি 1.14.29 9

উত্তর:


4

ক্রম প্রসারিত হওয়ার কারণে আপনি ভেরিয়েবলগুলিতে পুনঃনির্দেশগুলি পাস করতে পারবেন না। শব্দ বিভাজনের আগে পুনঃনির্দেশ মূল্যায়ন করা হয়।

দেখুন BashFAQ / 050 , শেল প্রসারণ এবং পুনঃনির্দেশগুলি


হ্যাঁ, তবে কেবল শেষ দুটি লাইনটি প্রতিস্থাপন করুন: এনসিএমডি = "এক্সিকিউটিভ $ ডেমোন A ডেমোন_আরজিএস"; স্টার্ট-স্টপ-ডেমন-এসবিএমভি - পিডফায়াল $ পিআইডিএফআইএল - চিডির $ A ডেমোন_ডিআর ex - এক্সেক $ ডেমোন - স্টার্টস / বিন / শ - $ এনসিএমডি 1 >> $ অ্যাপ্লোগ_ফিল 2 >> $ এরলোগ_ফিল
বিএমডান

এটি নোড স্ট্রিমগুলি পুনর্নির্দেশ করবে বা start-stop-daemon'গুলি?
কুরোকি কাজী

1
@ কুরোকি এবং @ বিএমডান: এটি এর ফলাফলকে পুনর্নির্দেশ করবে start-stop-daemon
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

2
কেবলমাত্র ডেমন আউটপুট (শ-র‍্যাপারের অন্যান্য) জন্য শুনার কোনও উপায়?
কুরোকি কাজী

1

স্ক্রিপ্টে আপনার লাইনটি হ'ল:

start-stop-daemon -Sbmv --pidfile $PIDFILE --chdir ${DAEMON_DIR} --exec $DAEMON --startas /bin/sh -- $NCMD

সুতরাং আপনি মূলত আরগ হিসাবে $DAEMONব্যবহার করে বলছেন $NCMD। পরিবর্তন $NCMDকরার চেষ্টা করুন

"$DAEMON_ARGS 1>>$APPLOG_FILE 2>>$ERRLOG_FILE"

এবং দেখুন এটি কার্যকর হয় কিনা।

যদি তা না হয় তবে আপনাকে পুনরায় ডাইরেক্ট করতে stdoutএবং stderrফাইলগুলিতে আপনার সফ্টওয়্যারটি পরিবর্তন করতে হবে (সম্ভবত এটিতে ইতিমধ্যে লগিংয়ের বিকল্প রয়েছে)। আপনি কেবল পুনর্নির্দেশটি করতে একটি মোড়ক স্ক্রিপ্টও লিখতে পারেন তবে এটি কিছুটা কুরুচিপূর্ণ দিকে।


1

এর জন্য আর একটি উপায় নোহুপের মতো পুনঃনির্দেশকে স্ট্রিম করে :

nohup ./bin/servicemix ./conf/servicemix.xml > log/nohup.log 2>&1 &
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.