Я создал приложение, которое по сути является демоном, написанным на C. Оно останавливается и запускается с помощью сценария оболочки. В частности, чтобы остановить его, kill используется для отправки сигнала SIGTERM. PID демона сохраняется в файле на диске в формате:
1234\n
Пользователь сообщает, что он не может остановить демон, сценарий оболочки возвращает ошибку:
kill: `': not a pid or valid job spec
PID выбирается и используется в сценарии оболочки следующим образом:
if [ -f "${PID_FILE}" ]
then
FCPID=`head -n 1 $PID_FILE`
kill -n SIGTERM "${FCPID}"
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
rm -f ${PID_FILE}
echo "OK"
else
echo "FAIL"
exit 1
fi
else
echo "Wasn't running"
exit 1
fi
Он отлично работает на моей машине (Ubuntu 10.04), и до сих пор никто больше не сообщал об этой проблеме. Кто-нибудь распознает ошибку или в скрипте оболочки есть ошибка, которая может вызвать проблемы на некоторых платформах?