現在、Ubuntu 12.04 を実行しています。現在正常にインストールされ、3 つの新しいプロセスを開始する debian パッケージを作成しました。また、/etc/init.d 内に次のスクリプトを配置して、これら 3 つのプロセスを実行時に開始するようにしました。
# 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
;;
このスクリプトは実行時に 3 つのプロセスを開始しますが、何らかの理由で、sudo /etc/init.d bleh.sh stop のように開始/停止コマンドを実際に使用できません。
さらに大きな問題は、次のコマンドを使用してこのパッケージを削除することです: sudo dpkg -r bleh
3 つのプロセスを実際に停止するわけではなく、opt フォルダーにインストールした bleh ディレクトリを削除しようとするだけです。また、bleh ディレクトリ内に削除されないフォルダーがあり、次のような警告が表示されます。 .
そのログ ディレクトリ内のファイルは、SU 特権を持っていない限り読み取り専用ですが、その dpkg -r コマンドで sudo を呼び出しているので、それがどのように問題になるかわかりません。
sudo dpkg -r bleh を再度実行すると、bleh に一致するインストール済みパッケージがないと表示されます。つまり、既存のログ ディレクトリと 3 つのプロセスがまだ実行されていても、インストール済みパッケージが正常に削除されたと見なされます。
申し訳ありませんが、これが長くなったことは知っていますが、本当に助けが必要です.. 事前に感謝します!