[RESOLU] Script PHP au démarrage d'Ubuntu

Script PHP au démarrage d'Ubuntu [RESOLU] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 28-05-2009 à 10:57:52    

Bonjour tlm :hello:
 
Je ne suis pas trop habitué à cette section, j'espere ne pas me tromper :o
 
J'ai un créé un script qui contient un certains nombre de requetes mysql (pas particulierement complexes, mais imbriquées), et du coup j'ai du mal à le faire en shell script.
 
J'ai donc créé un script php pour executer mes requetes, mais je n'arrive pas à l'executer au démarrage de ma machine.
 
J'ai essayé de créer un shell script qui lance un "php script.php", mais il n'y arrive pas, les requetes ne sont pas lancées, alors que si j'execute mon shell script à la main dans un terminal, ca marche (./script.sh).
 
Qqn aurait une idée pour parvenir à lancer ce script php au démarrage, que ca soit via un shell script ou autrement ?
 
D'avance merci :jap:
 
 
SOLUTION :
c'etait donc simplement le shebang php à rajouter, je l'ai mis, et maintenant le script passe :)


Message édité par Bourreau le 02-06-2009 à 12:26:48

---------------
[VDS/ACH/ECH]  Le bordel à Bourral (procos, mobos, ram, WC,...)
Reply

Marsh Posté le 28-05-2009 à 10:57:52   

Reply

Marsh Posté le 28-05-2009 à 11:26:48    

ton script shell tu l'as mis ou ?


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
Reply

Marsh Posté le 28-05-2009 à 11:32:23    

Pour l'instant il est dans un dossier, avec le script php, et j'ai simplement ajouté en mode graphique le script au démarrage, poru les tests.


---------------
[VDS/ACH/ECH]  Le bordel à Bourral (procos, mobos, ram, WC,...)
Reply

Marsh Posté le 28-05-2009 à 11:45:50    

Au démarrage de quoi ? gnome ?  
Vérifie que ton script est exécutable (chmod +x) déjà.
Si vraiment ça marche pas, fais toi un service vite fait dans /etc/init.d...

Reply

Marsh Posté le 28-05-2009 à 14:51:51    

oui au démarrage de gnome :jap:

 

il est en 777, et fonctionne très bien s'il est lancé à la main par un terminal, mais ne fonctionne pas s'il est lancé via les "startup programs".

 

Je ne maitrise pas trop les services init.d, tu aurais une commande pour faire ca stp ?


Message édité par Bourreau le 28-05-2009 à 14:53:25

---------------
[VDS/ACH/ECH]  Le bordel à Bourral (procos, mobos, ram, WC,...)
Reply

Marsh Posté le 28-05-2009 à 15:13:46    

ouch, me suis fais une frayeur la, en fait cai sur un petit serveur, mais qui est en production, un downtime de qq minutes cai pas du tt grave, mais plus je ne peux pas me permettre.
 
Et j'avais oublié de préciser un truc important, mon script est en "while 1". Donc la j'avais trouvé un peu sur le net qq commandes, j'ai donc copié mon script dans init.d et essayé un :
update-rc.d script.sh defaults
 
Mais du coup la bécane ne boot plus, il reste bloque dans mon while au boot, logique...
 
Je suppose qu'il ya un moyen de réussir qd meme, en jouant sur les states du boot, mais la ca devient compliqué pour moi, si qqn peut m'apporter un peu d'aide...


---------------
[VDS/ACH/ECH]  Le bordel à Bourral (procos, mobos, ram, WC,...)
Reply

Marsh Posté le 28-05-2009 à 21:01:22    

Tu n'aurais pas oublié le shebang au script PHP ?

Reply

Marsh Posté le 29-05-2009 à 08:36:28    

Oo cai quoi le shebang en php ?
Je connaissais aps ce mot, 'jai regardé sur google la, cai le !bin/bash par exemple, ok, mais en php ?


---------------
[VDS/ACH/ECH]  Le bordel à Bourral (procos, mobos, ram, WC,...)
Reply

Marsh Posté le 29-05-2009 à 09:00:25    

Reply

Marsh Posté le 29-05-2009 à 09:28:45    

En PHP : #!/usr/bin/php

Reply

Marsh Posté le 29-05-2009 à 09:28:45   

Reply

Marsh Posté le 29-05-2009 à 09:30:12    

Gavrinis a écrit :

Tu n'aurais pas oublié le shebang au script PHP ?


Je suppose qu'il appelle son script avec la commande php-cli
 

Bourreau a écrit :

Je suppose qu'il ya un moyen de réussir qd meme, en jouant sur les states du boot, mais la ca devient compliqué pour moi, si qqn peut m'apporter un peu d'aide...


 
http://www.cyberciti.biz/tips/linu [...] rvice.html
et dans start, tu lances ton script en background.
Attention avec un while (1) en php, même si ça fait rien, ça va bouffer tout le cpu si t'as pas mis de sleep et la stabilité est moyenne sur de très longues exécutions.
Sinon tu peux faire un script qui fait la même chose une fois et le mettre dans ta crontab

Reply

Marsh Posté le 02-06-2009 à 11:05:43    

Je lance effectivement mon script avec la commande php du cli.

 

L'idée de le mettre dans le rc est bonne je pense, simplement il ne faudrait pas le mettre à tous les states, pour que par exemple il ne boucle pas sur le while au boot de la machine, mais simplement une fois que le user s'est connecté.

 

J'avais pensé virer le while et mettre en cron mais ya une chose qui m'inquiete. Il s'agit en gros de réaliser une série de nmap. Et j'ai peur que :

 

-admettons que mon script prenne 10min en fonctionnement normal, je décide de le cronner toutes les 10 ou meme 15min

 

-maintenant ya qq IP qui ne répondent plus, le script va prendre plus de tps, admettons 15min30

 

-a force, à chaque execution, il va rester des requetes de la boucle d'avant à executer et au final ca va donner une merde exponentielle :/

 

Alors qu'avec un while, j'aurais qd meme l'avantage qu'il ne recommence pas la boucle avant que l'autre ne soit finie.

 


Mais comme dit, je ne sais pas dans quels states du rc je devrais mettre mon script, ni comment le faire... :/

 

Merci pour vos idées.


Message édité par Bourreau le 02-06-2009 à 11:06:00

---------------
[VDS/ACH/ECH]  Le bordel à Bourral (procos, mobos, ram, WC,...)
Reply

Marsh Posté le 02-06-2009 à 12:25:53    

bon, suis allé bouffer tot pour pouvoir rebooter le serveur et voir ca entre midi, ca marche !!!
 
c'etait donc simplement le shebang php à rajouter, je l'ai mis, et maintenant le script passe :)
 
merci à tous :jap:


---------------
[VDS/ACH/ECH]  Le bordel à Bourral (procos, mobos, ram, WC,...)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed