[bcn-pm] Proc::Daemon com a usuari no root

Arnau Bria listsarnau a gmail.com
dic feb 29 09:26:01 PST 2012


Hola, ja torno a ser aquí.

he 'dimonitzat' un script que s'encarrega d'enviar dades al servidor
ganglia via gmetric (si, segueixo amb el tema dels gmetrics). Ho tenia
en un cron, però he pensat que era millor (i més divertit)
dimonitzar-lo.
Estic utilitzant Proc::Daemon, i tot em funcionava perfectament. El
procés es quedava com a dimoni en un bucle que havia d'executar 3
funcions: una per netejar les variables, i les altres dues generen
gmetrics de dos serveis.

Ara volia còrrer el dimoni com a usuari no root, aixi que al
Proc::Daemon::Init acaba sent:

Proc::Daemon::Init({setuid => '201'});

I deixa de funcionar. (per cert, com controlo que el Init no retorna
error? no ho se veure a la web que descriu el mòdul).

Després de moltes voltes he vist que el problema el tenia en una de les
funcions:

while ($continue) {
        $log->notice("New cycle...");
---->   &variable_init_clean (); <----------------
        &maui_gmetric ();
        &pbs_gmetric ();
        $log->notice("Sleeping for 70 sec...");
        sleep 70;
}

Si la comento, el meu script torna a funcionar i sota el usuari 201.

Ara estic mirant aquesta funció i no veig que estic fent malament:

sub variable_init_clean () {
        $log->debug("I'm inside variable_init_clean");
        $groups={};
        $defined_queues={};
        $eff={};
        $shares={};
        $queue={};
        $groups  = LoadFile("/etc/monami.d/groups.yaml");
        $defined_queues  =  LoadFile("/etc/monami.d/queues.yaml");
        $eff={ 20 => 0, 50 => 0, 80 => 0 };
}

He vist que peta quan fa el primer LoadFile (que ve de: use YAML
qw(LoadFile);).

Els arxius en qüestió són accessibles per l'usuari 201. Els hi he
canviat el propietari a 201:201 i res...

Així que ja no se que més pensar.... perquè el LoadFile de YAML no
funciona sota un usuari que no sigui root encara que aquest pugui llegir
els fitxers?


Com sempre, moltes gràcies per endavant!
Arnau


Més informació sobre la llista de correu Barcelona-pm