Re: como obter o pid do processo executado durante o boot?
Em 29-01-2013 16:34, Deckardbot escreveu:
Junior,
A minha intenção era criar um script dentro de /etc/init.d com as
opções start,
stop e restart.
Mas para a opção stop eu preciso saber o pid para usá-lo com o comando
kill.
Ai eu poderia manipular o processo assim:
# service script [start|stop|restart]
mas obrigado por me reponder, ja aprendi outra coisa com sua dica :)
Deckardbot,
Meu conselho é usar as ferramentas de daemon, isto é, copia um
daemon que está em /etc/init.d e troca o executável dele e seu nome pelo
seu executável.
Por exemplo, pegando o /etc/init.d/atd do Debian 7.0 Wheesy,
abaixo o cat dele, e seu programa como sendo /root/script_python.py e
executável (chmod +x /root/script_python.py), faz-se "cp /etc/init.d/atd
/etc/init.d/script_python" e troca-se:
DAEMON=/usr/sbin/atd
por
DAEMON=/root/script_python.py
PIDFILE=/var/run/atd.pid
por
PIDFILE=/var/run/script_python.pid
"atd" nos logs
por
"script_python"
Usage: /etc/init.d/atd
por
Usage: /etc/init.d/script_python
Dê uma conferida no cabeçalho para ver quais daemons/serviços quer que
carrega antes do seu script.
Para finalizar, execute "update-rc.d script_python defaults".
Pronto, agora pode usar "service script_python [start|stop|status]"
[]'s
Junior Polegato
junior@note:/etc/init.d$ cat atd
#! /bin/sh
### BEGIN INIT INFO
# Provides: atd
# Required-Start: $syslog $time $remote_fs
# Required-Stop: $syslog $time $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Deferred execution scheduler
# Description: Debian init script for the atd deferred executions
# scheduler
### END INIT INFO
#
# Author: Ryan Murray <rmurray@debian.org>
#
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/atd
PIDFILE=/var/run/atd.pid
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting deferred execution scheduler" "atd"
start_daemon -p $PIDFILE $DAEMON
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping deferred execution scheduler" "atd"
killproc -p $PIDFILE $DAEMON
log_end_msg $?
;;
force-reload|restart)
$0 stop
$0 start
;;
status)
status_of_proc -p $PIDFILE $DAEMON atd && exit 0 || exit $?
;;
*)
echo "Usage: /etc/init.d/atd {start|stop|restart|force-reload|status}"
exit 1
;;
esac
exit 0
Reply to: