dpkg удалить, чтобы остановить процессы

В настоящее время я использую Ubuntu 12.04. Я создал пакет Debian, который в настоящее время успешно устанавливается и запускает три новых процесса. Я также запустил эти три процесса во время выполнения, поместив следующий скрипт в /etc/init.d:

# This example is from http://www.debian-administration.org/article/Making_scripts_run_at_boot_time_with_Debian
#  Also used http://wiki.debian.org/LSBInitScripts/

### BEGIN INIT INFO
# Provides:          bleh
# Required-Start:    $remote_fs $syslog $network
# Required-Stop:     $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO


# Carry out specific functions when asked to by the system
case "$1" in
  start)
    cd //opt/bleh
    attrf=.gatewayattributes

    if [ ! -z "$1" ]
    then
  echo "[gateway]" >> $attrf
    echo "activationKey = $1" >> $attrf
fi

./bleh1 -n &
./bleh2 &
python bleh3 &

    ;;
  stop)
cd //opt/bleh
/usr/bin/pkill -f ./bleh1 -n
    /usr/bin/pkill -f bleh3
    kill -9 $(pidof bleh2)
    rm -rf logs
    ;;

Этот сценарий запускает три процесса во время выполнения, но по какой-то причине я не могу использовать команды запуска/остановки, как в sudo /etc/init.d bleh.sh stop.

Еще большая проблема заключается в том, что удаление этого пакета с помощью команды: sudo dpkg -r bleh

На самом деле не останавливает три процесса, он только пытается удалить каталог bleh, который я установил в своей папке opt. Кроме того, у меня есть папка в моем каталоге bleh, которая не удаляется, она выдает мне предупреждение: Удаление bleh ... dpkg: предупреждение: при удалении bleh каталог '/opt/bleh/logs' не пуст, поэтому не удален .

Файлы внутри этого каталога журналов доступны только для чтения, если у вас нет привилегий SU, но я не вижу, как это должно быть проблемой, поскольку я вызываю sudo в этой команде dpkg -r.

Если я снова запускаю sudo dpkg -r bleh, он заявляет, что нет установленного пакета, соответствующего bleh, что означает, что он считает, что успешно удалил установленный пакет, даже с этим существующим каталогом журналов и тремя процессами, которые все еще работают.

Извините, я знаю, что это было долго, но мне действительно может понадобиться помощь... заранее спасибо!


person user1553248    schedule 27.08.2012    source источник
comment
Как вы создали пакет dpkg? используя tar.gz? Вы должны настроить сценарий удаления в dpkg, чтобы остановить процесс перед удалением файлов.   -  person Satish    schedule 27.08.2012
comment
Где этот скрипт удаления?? Я думаю, найти это в конечном итоге будет ключом здесь.   -  person user1553248    schedule 28.08.2012
comment
проверьте stackoverflow.com/questions/9311627/   -  person Satish    schedule 28.08.2012


Ответы (1)


Как рекомендовано в Руководстве нового сопровождающего Debian, пожалуйста, используйте dh_installinit (конечно, соберите весь пакет с помощью debhelper). По умолчанию это добавит сценарии для запуска и остановки при установке и удалении пакета.

Вспомогательные файлы (например, файлы конфигурации) обычно удаляются в состоянии purge (например, dpkg -P). Чтобы справиться с этим самостоятельно, вам нужен скрипт deconfigure.

Кроме того, крайне желательно использовать start-stop-daemon вместо &, что недостаточно для правильной демонизации.

person ephemient    schedule 27.08.2012