1 votes

La commande dans le script perl ne fonctionne pas

Quand je mets cette commande dans un script perl, cela ne fonctionne pas:

`chkconfig --level 3 nslcd on`;

Mais si je l'exécute sur un shell de commande linux, ça marche.

[root@barf Scripts]# chkconfig --level 3 nslcd on

Je suis curieux de savoir pourquoi ça ne fonctionne pas dans un script perl.

Merci d'avance

2 votes

Ne pas fonctionner est une affirmation forte. Est-ce qu'il s'assoit sur le canapé toute la journée ? Veut-il plus d'argent ? Est-il sur Serverfault tout le temps ? Veuillez être spécifique !

0 votes

"Ne fonctionne pas" signifie que le service n'a pas démarré après un redémarrage.

0voto

Squeezy Points 130

Utiliser

print `chkconfig --level 3 nslcd on`;

au lieu de "l'arranger" ? Si oui, la réponse se trouve ici : https://stackoverflow.com/questions/799968/whats-the-difference-between-perls-backticks-system-and-exec

Les backticks en Perl s'exécutent avec un appel system(), et leur valeur de retour sera la STDOUT de la commande appelée.

0 votes

Ça n'a pas fonctionné (imprimer chkconfig --level 3 nslcd on;) Peut-être parce qu'a.pl appelle b.pl qui contient chkconfig --level 3 nslcd on dedans?

0 votes

Après votre clarification sur la question : Exécutez-vous le script perl avec des permissions root également ?

0 votes

Oui, j'exécute le script perl avec des permissions root.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X