จำเป็นต้องสร้าง script สั่งโปรแกรมที่สร้างสร้าง erlang ให้ทำงานเป็น background process ตอนสั่งนี่ก็ใช้
erl -noshell -detatched
แต่ตอนจะสั่ง stop หรือ kill -9 $PID ต้องมานั่งหา PID เองด้วยการสั่ง ps ax | grep program_name
เลยหาวิธีว่าจะทำยังไงจะได้ PID จะได้มาเขียน script เพื่อสั่ง stop ก็ไปแกะจาก โค้ด ของ nitrogen ที่ใช้ในการ stop
เจอว่าใช้วิธีแบบนี้
stop)
# Wait for the node to completely stop...
PID=`ps -ef|grep "$RUNNER_BASE_DIR/.*/[b]eam.smp|awk '{print $2}'"`
$NODETOOL stop
while `kill -0 $PID 2>/dev/null`;
do
sleep 1
done
;;
ก็คือใช้ ps -ef นั่นแหละ แล้วใช้ grep ค้นหา เสร็จแล้ว pipe ให้กับ awk '{pint $2}' เพื่อเลือกเฉพาะ column ที่ 2
แล้วก็ สั่ง kill -0 $PID 2>/dev/null ไม่รู้เหมือนกันว่าทำไมใช้ -0 แต่พอเอามาทำของตัวเองแล้วผมต้องใช้ -9 ถึงจะ kill process ได้
Roti (alpha) thinks you may like these
มี pgrep ด้วยนะ : D
มี pgrep ด้วยนะ : D