m4iir1c10
(usa Arch Linux)
Enviado em 30/12/2012 - 17:04h
Nao, deixa o cron... se o seu script tem que ser rodado como root ele tem que iniciar antes do usuario fazer o login... para isso voce tem que transformar esse programa em um servico do systema.
Para transformar esse programa em servico do sistema voce tem que criar um init script e colocar ele na pasta /etc/init.d/ e criar links simbolicos nas pastas correspondentes ao runlevel que esse programa vai rodar.
Digamos que ele vai rodar no runlevel 2, 3, 4 e 5
Como voce ja postou o caminho para a applicacao eu escrevi esse init script para voce, porem eu recomendo voce ler estudar e entender esse metodo, porque nao e todo dia que voce vai encontrar tudo de mao beijada.
#!/bin/bash
#
# chkconfig: 2345 90 12
# description: ocsinventory-agent init script
# /usr/bin/ocsinventory-agent &
# Get function from functions library
# . /etc/init.d/functions
# Inicia o servico ocsinventory-agent
start() {
initlog -c "echo -n Iniciando ocsinventory-agent: "
/usr/bin/ocsinventory-agent &
### Criar o arquivo de travamento ###
touch /var/lock/subsys/ocsinventory-agent
success $"ocsinventory-agent rodando"
echo
}
# parando o ocsinventory-agent
stop() {
initlog -c "echo -n Parando o ocsinventory-agent: "
killproc ocsinventory-agent
### Apague o arquivo de travamento ###
rm -f /var/lock/subsys/ocsinventory-agent
echo
}
### main logic ###
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status ocsinventory-agent
;;
restart|reload|condrestart)
stop
start
;;
*)
echo $"Uso correto: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0
Salve esse script como root em /etc/init.d/ocsinventory-agent
Para iniciar durante a sessao e ver se esta funcionando
sudo /etc/init.d/ocsinventory-agent start
Agora a dura parte e que como esse script e para o init local, se voce tem ususarios em outros computadores em cada computador que voce tem o ocsinventory-agent cliente instalado voce deve fazer esse procedimento.
Eu nao conheco o ocsinventory-agent assim nao posso dizer se ele vai monitorar o login dos usuarios uma vez que ele ja esta rodando no background, porem se ele nao monitora ai voce vai ter que criar um script que contem o comando w e que cheque de tempo em tempo quais usuarios estao conectados, seria bom se esse script chame a funcao do ocsinventory-agent que faz um update nele... entendeu?
Compliquei?