সম্পাদনা: কোন কারণে আমার পোস্টের অর্ধেকটি কেটে গেছে, কী হয়েছে তা নিশ্চিত নয়। আমি শীঘ্রই আপডেট করব এবং পোস্ট করব যে এটি শীর্ষে এখানে আপডেট হয়েছে।
সম্পাদনা: অসম্পূর্ণ প্রশ্নের জন্য দুঃখিত, আমি পোস্টটি আবার আপডেট করেছি।
সম্পাদনা (8:55 অপরাহ্ন EST 10/10/2011): স্টিভেনের পরামর্শ মতো আমি /srv/rhodecode/start.sh আপডেট করেছি, এখনও আনন্দ নেই। এটি এভাবে ঝুলতে থাকে:
[lpeabody@vcs rhodecode]$ sudo /etc/init.d/rhodecode-server start
Starting rhodecode-server:
পরিবর্তনগুলি দেখানোর জন্য আমি নীচের স্ক্রিপ্টগুলি আপডেট করেছি।
আমি জীবনে কখনও শেল বা বাশ স্ক্রিপ্ট লিখিনি। আমি সেন্টোজে রডকোড ইনস্টল করার চেষ্টা করছি, এবং সেখানে দেবিয়ান ও জেন্টুর জন্য আরআইডি স্ক্রিপ্ট রয়েছে তবে রেডহ্যাট / সেন্টোসের জন্য নয় যা আমার কাছে উন্মাদ। সুতরাং আমাকে একটি লিখতে হবে কারণ আমাদের সার্ভারের পরিবেশটি সেন্টোস 5 চালানোতে সীমাবদ্ধ the প্রকল্পের উত্সটি এখানে বিটবকেটে পাওয়া যাবে ।
ধারণাটি হ'ল রোডকোড ডাব্লু / সেলারি এবং রাবিট এমকিউ চালানো। এটি সব পাইথনে লেখা এবং আমার নিজস্ব পরিবেশটি ভার্চুয়ালেনভ ব্যবহার করে নিজস্ব স্বতন্ত্র ভার্চুয়াল ধারক। আমি এখানে শেল স্ক্রিপ্টের জন্য ধারণা পেয়েছি ।
আমি রোডকোড নামে একটি সিস্টেম ব্যবহারকারী তৈরি করেছি এবং ডিরেক্টরিটি তৈরি করেছি / var / রান / রোডকোড এবং এর মালিকানা রোডকোড। আমি / var / www / rhodecode তৈরি করেছি যেখানে product.ini থাকে, সেইসাথে /srv/rhodecode/start.sh এর সমস্ত কিছুই রোডকোডের মালিকানাধীন।
অনুমতিসমূহ:
[lpeabody@vcs run]$ ll -a /var/run/rhodecode
total 12
drwxr-xr-x 2 rhodecode rhodecode 4096 Oct 10 15:57 .
drwxr-xr-x 21 root root 4096 Oct 10 16:07 ..
[lpeabody@vcs run]$ ll -a /var/www/rhodecode
total 76
drwxr-xr-x 4 rhodecode rhodecode 4096 Oct 10 16:47 .
drwxr-xr-x 11 root root 4096 Oct 5 14:54 ..
drwxrwxr-x 3 rhodecode rhodecode 4096 Oct 5 19:40 data
-rw-r--r-- 1 rhodecode rhodecode 0 Oct 10 16:41 debug.log
-rw-r--r-- 1 rhodecode rhodecode 1466 Oct 10 16:41 error.log
-rw-rw-r-- 1 rhodecode rhodecode 6000 Oct 6 15:27 production.ini
drwxrwxr-x 2 rhodecode rhodecode 4096 Oct 5 18:37 repos
-rw-r--r-- 1 rhodecode rhodecode 44032 Oct 5 19:16 rhodecode.db
[lpeabody@vcs run]$ ll -a /srv/rhodecode/
total 16
drwxr-xr-x 2 rhodecode rhodecode 4096 Oct 10 16:40 .
drwxr-xr-x 4 root root 4096 Oct 7 14:40 ..
-rwxr-xr-x 1 rhodecode rhodecode 277 Oct 10 16:40 start.sh
আমার কাছে নিম্নলিখিত ব্যাশ এবং শেল স্ক্রিপ্ট রয়েছে।
/srv/rhodecode/start.sh
#!/bin/bash
# run this as the rhodecode user!
WDIR=/var/www/rhodecode
VIRTUALENV_DIR=/opt/python_virtualenvironments/rhodecode-venv
export PYTHON_EGG_CACHE=/tmp/.python-eggs
source $VIRTUALENV_DIR/bin/activate
cd $WDIR
exec paster serve production.ini 1> debug.log 2> error.log
/etc/init.d/rhodecode-server
#!/bin/sh
#
# rhodecode-server RhodeCode server instance
#
#
# PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME=rhodecode-server
DESC=rhodecode-server
USER=rhodecode
PID_FILE=/var/run/rhodecode/pid
CMD=/srv/rhodecode/start.sh
LOCK_FILE=/var/lock/subsys/$NAME
. /etc/init.d/functions
RETVAL=0
remove_pid () {
rm -f ${PID_FILE}
}
start_rhodecode () {
daemon --user $USER --pidfile $PID_FILE $CMD
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $LOCK_FILE
return $RETVAL
}
stop_rhodecode () {
killproc -p $PID_FILE
RETVAL=&?
rm -f $LOCK_FILE
rm -f $PID_FILE
return $RETVAL
}
restart_rhodecode () {
stop_rhodecode
start_rhodecode
RETVAL=$?
}
case "$1" in
start)
echo -n $"Starting $DESC: "
start_rhodecode
echo
;;
stop)
echo -n $"Stopping $DESC: "
stop_rhodecode
echo
;;
restart)
echo -n $"Restarting $DESC: "
restart_rhodecode
echo
;;
*)
echo $"Usage: $0 {start|stop|restart}"
RETVAL=1
;;
esac
exit $RETVAL
আমি যখন চালাব sudo /etc/init.d/rhodecode-server start
এবং তারপরে রান করব তখন আমি /srv/rhodecode/start.sh থেকে কমান্ডটি ps -aux | grep paster
দেখতে পাচ্ছি paster serve production.ini
এবং রোডকোডের ইউজার আইডি (102) দিয়ে চলছে।
102 5222 0.7 7.8 144300 80988 ? Sl 16:08 0:00 /opt/python_virtualenvironments/rhodecode-venv/bin/python /opt/python_virtualenvironments/rhodecode-venv/bin/paster serve production.ini
তবে কোনও পিড ফাইল তৈরি হয় না, তাই আমি আমার আরআর স্ক্রিপ্ট থেকে সার্ভারটি থামাতে পারি না can't আমি নিশ্চিত না কেন ডিমন পিডফিল তৈরি করছে না। পিড ফাইলের পথটি বৈধ এবং অনুমতিগুলি সঠিক। থটস?
/var/run/rhodecode/pid
যেভাবে চলছে সেই ব্যবহারকারীর জন্য কি সঠিক অনুমতি রয়েছে ? এই বিষয়টির জন্য, পরিবর্তনশীলটি সঠিক বা এটি হওয়া উচিত /var/run/rhodecode.pid
?
sh -x /etc/init.d/rhodecode-server start
?
daemon --pidfile
পিড ফাইলটি কেবল তা নির্দিষ্ট করে। CentOS এ ফাংশনগুলির প্রয়োজনীয় --make-pidfile
বিকল্পটি মনে হচ্ছে না