détecter le lancement d'un programme

8 réponses
Avatar
enae
Bonjour,

dans le cadre d'une application, je souhaite détecter le lancement d'un
programme (type: cp, mv) afin de lancer un script bash lorsque la
commande est détectée.
Y-a-t-il un moyen de faire ceci?
Je vous remercie d'avance pour votre aide.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: https://lists.debian.org/5573671A.5030506@free.fr

8 réponses

Avatar
Francois Lafont
Bonsoir,

Le 06/06/2015 23:33, enae a écrit :

dans le cadre d'une application, je souhaite détecter le lancement d'un programme (type: cp, mv) afin de lancer un script bash lorsque la commande est détectée.
Y-a-t-il un moyen de faire ceci?



Perso je ne sais pas faire ce que tu demandes. Mais je ne suis pas
un expert, peut-être que d'autres t'indiqueront une vraie solution.

En revanche, je tenterais une sorte de contournement. Imaginons
que le programme en question soit le programme /bin/cp (par
exemple), alors je créerais un wrapper /usr/local/bin/cp de sorte
que tout compte Unix qui utilise la commande cp directement (ie
en faisant un appel via le nom court) et dont le PATH contient
/usr/local/bin/ utilisera automatiquement ton wrapper.

Bon, c'est vraiment un contournement qui ne répond pas vraiment
à ta question car si un compte Unix appelle cp via son chemin
absolu (/bin/cp) ou si ce compte ne possède pas /usr/local/bin/
dans son PATH, ça ne marche pas. Ou alors il faut carrément
remplacer /bin/cp par son wrapper et déplacer /bin/cp ailleurs.
Bref, ça répond pas vraiment à ta question. Désolé.

--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/mkvpo1$q6j$
Avatar
JF Straeten
LO,


On Sat, Jun 06, 2015 at 11:33:14PM +0200, enae wrote:

[...]
dans le cadre d'une application, je souhaite détecter le lancement d'un
programme (type: cp, mv) afin de lancer un script bash lorsque la commande
est détectée.
Y-a-t-il un moyen de faire ceci?



Jette un ½il à 'pidof' peut-être...

Je m'en sers par exemple comme ceci :

while (pidof /usr/bin/wget > /dev/null); do sleep 1; done && wget -i links1

pour lancer le téléchargement d'une seconde liste de liens, alors
qu'une première est déjà en cours et que je veux attendre la fin.

(On ne sait pas compléter un fichier de liens passé à 'wget' une fois
qu'il est lancé, donc la boucle while surveille qu'il existe toujours
un pid pour 'wget' ['pidof' renvoi le pid du/des processus indiqués]
et dors une seconde tant que c'est le cas. Une fois que le pid
disparaît, 'wget' ne tourne plus et il exécute alors une nouvelle
instance, avec un autre fichier de liens...)


N.B. dans ton cas, si ton 'cp' ou 'mv' s'exécute presque
instantanément, je ne sais pas trop ce que ça va donner ?

Mais dans ce cas, si tu as un certain contrôle sur les fichiers copiés
ou mouvés, ou sur le(s) répertoire(s) de destination, tu peux regarder
du côté de 'inoticoming' qui est capable de lancer une action en cas
d'arrivée d'un fichier à un endroit surveillé...

Hih,


--

JFS.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Frédéric MASSOT
Le 06/06/2015 23:33, enae a écrit :
Bonjour,

dans le cadre d'une application, je souhaite détecter le lancement d'un
programme (type: cp, mv) afin de lancer un script bash lorsque la
commande est détectée.
Y-a-t-il un moyen de faire ceci?
Je vous remercie d'avance pour votre aide.



Évites de demander un accusé de réception sur une liste de discussion.

Tu peux regarder le fonctionnement du programme snoopy, c'est un wrapper
sur la libc il enregistre les appels à la fonction execve().


--
============================================= | FRÉDÉRIC MASSOT |
| http://www.juliana-multimedia.com |
| mailto: |
| +33.(0)2.97.54.77.94 +33.(0)6.67.19.95.69 |
==========================Þbian=GNU/Linux==
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Pierre Malard
--Apple-Mail=_4D7AF06C-5200-49B8-ADB8-9DC68C2ACEB4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8

Jour,

Le 6 juin 2015 à 23:33, enae a écrit :
dans le cadre d'une application, je souhaite détecter le lancement d'un programme (type: cp, mv) afin de lancer un script bash lorsque la commande est détectée.
Y-a-t-il un moyen de faire ceci?
Je vous remercie d'avance pour votre aide.



Et pourquoi ne pas « masquer » la commande dans le /etc/bash.bashrc ? Comme ça, à part le cas de l’utilisat ion du chemin complet d’accès à la commande, c’e st ton script qui est exécuté et non la commande.

--
Pierre Malard

«Mittler zwischen hirn und händen muss das hirz sein !»
«La médiation entre le cerveau et les mains doit être le cœur !»
Fritz Lang - "Métropolis" - 1929
| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_) πr

perl -e '$_=q#: 3| 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'_): 24πr::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--


--Apple-Mail=_4D7AF06C-5200-49B8-ADB8-9DC68C2ACEB4
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=signature.asc
Content-Type: application/pgp-signature;
name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.27
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCgAGBQJVc+pTAAoJELzRDw+wKgIyhnwP/01vPynsgkBpxnX+UX1qdkv3
CjJBQxpj+XaNTyWihRGbP5tJjbkcnPLP38fKoZ6j7dYp1bC47Tu+7AgQ8FL/m5Hz
3oVUcFvHVYJvx84kzsYEW2r1G8eLLSGsyLWA6FBdou5omfZMiYI4rvVai/4G4G64
NVU2u3ELex+Kp1rg2M0++6jRuOdB35n/WpqHfqwwwnw+6cW0qk2KX4+vHy4pdjFS
gkt+HyE29wCzFi0d+bL2qRQHG6qo8uKUOH5rbyXQvM/cRjcafI0HMz0haigy/VLc
9/x6IpiR+efxfhnYi+CAqnS/26PUEg8o74Cm3Lg+Ur25axh32/m4geFAcEYy6plr
ze+nypcPY/K35G5jr6Hjx8MqiMrD6TyWoxvOxxqNkeLJ+RZj6kE1d9USHG5J90C8
hbC1KLp7bAkT6tpx07Tixz6MP+OIGOqBp0hq1B3Fg8crPi2kfbhpKrUM1SF4b8iM
z3fA/5Fgs7Di+SUjuW4Sg1aP2hc2IcbcWJUyRd6K3Rr47dLZq/AqlwBwHjIvWTWV
rXCNeyFd6ddS6B/uhG8L57C8d7vf1gwanl8RHzA2+fTuwhaP+wCe0olQ8SUg2oIX
f7V5+MAPqNp/U9Y4QmP+Wsm9gBBIleJJMYnbDv4lb+N6pC9u9okIWv6yRn/Dr0Lp
QfQ5Bb6vL8pqDGJNHfxl
=YSmA
-----END PGP SIGNATURE-----

--Apple-Mail=_4D7AF06C-5200-49B8-ADB8-9DC68C2ACEB4--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
enae
Bonjour à tous,

je vous remercie tous pour vos suggestions pour ma question.

Je vais examiner chaque solution mentionnée et voir laquelle est la
meilleure pour mon application.

Merci à tous pour votre aide.




Le 07/06/2015 08:53, Pierre Malard a écrit :
Jour,

Le 6 juin 2015 à 23:33, enae a écrit :
dans le cadre d'une application, je souhaite détecter le lancement d'un programme (type: cp, mv) afin de lancer un script bash lorsque la commande est détectée.
Y-a-t-il un moyen de faire ceci?
Je vous remercie d'avance pour votre aide.


Et pourquoi ne pas « masquer » la commande dans le /etc/bash.bashrc ? Comme ça, à part le cas de l’utilisation du chemin complet d’accès à la commande, c’est ton script qui est exécuté et non la commande.

--
Pierre Malard

«Mittler zwischen hirn und händen muss das hirz sein !»
«La médiation entre le cerveau et les mains doit être le cœur !»
Fritz Lang - "Métropolis" - 1929
| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_) πr

perl -e '$_=q#: 3| 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'_): 24πr::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Fabrice Regnier
'lut,

dans le cadre d'une application, je souhaite détecter le lancement d'un
programme (type: cp, mv) afin de lancer un script bash lorsque la
commande est détectée.
Y-a-t-il un moyen de faire ceci?


package acct ?

f.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/5578384d$0$3037$
Avatar
Haricophile
Le Wed, 10 Jun 2015 15:14:52 +0200,
Fabrice Regnier a écrit :

> dans le cadre d'une application, je souhaite détecter le lancement
> d'un programme (type: cp, mv) afin de lancer un script bash lorsque
> la commande est détectée.
> Y-a-t-il un moyen de faire ceci?
package acct ?

f.



Je dis peut-être une bêtise et je ne sais pas pourquoi c'est fair e, ça
serait pas un boulot à faire dans le cadre de selinux ?

--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Florian Blanc
--089e0160b7be8e134005185a4e5e
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Bonjour, je me suis trompé en répondant car j'ai oublié de " repondre à
tous" j'ai seulement répondu à Mr Haricophil :)
1er message : Bonjour, je dis peut être une bêtise mais tu pourra is faire
un alias dans le bashrc par exemple qui accepte de arguments et tu fais ton
traitement là dedans.
Cordialement.
2ème message : Après une recherche sur guogle du genre : "bash al ias
override command" je suis tombé sur un topic où quelqu'un te mont re comment
faire : "function cd() { builtin cd "$@" && ls -l; }"

Le samedi 6 juin 2015, enae a écrit :

Bonjour,

dans le cadre d'une application, je souhaite détecter le lancement d 'un
programme (type: cp, mv) afin de lancer un script bash lorsque la command e
est détectée.
Y-a-t-il un moyen de faire ceci?
Je vous remercie d'avance pour votre aide.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/





--089e0160b7be8e134005185a4e5e
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div><font size="2"><span style="background-color:rgba(255,255,255,0)"> Bonjour, je me suis trompé en répondant car j&#39;ai oublié de &quot;repondre à tous&quot; j&#39;ai seulement répondu à Mr Haricophil <span></span>:)</span></font><br></div><div class="gi hi Wh" dir="ltr"><font size="2"><span style="background-color:rgba(2 55,255,255,0)">1er message : Bonjour, je dis peut être une bà ªtise mais tu pourrais faire un alias dans le bashrc par exemple qui accepte de arguments et tu fais ton traitement là dedans. </span ></font></div><div><font size="2"><span style="background-color:rgba(25 5,255,255,0)">Cordialement. </span></font></div><div class="gi hi W h" dir="ltr"><font size="2"><span style="background-color:rgba(255,25 5,255,0)">2ème message : Après une recherche sur guogle du g enre : &quot;bash alias override command&quot; je suis tombé sur un to pic où quelqu&#39;un te montre comment faire : &quot;<span style="fo nt-style:inherit;font-variant:inherit;margin:0px;padding:0px;border:0px;ver tical-align:baseline">function</span><span style="font-style:inherit;font -variant:inherit;margin:0px;padding:0px;border:0px;vertical-align:baseline" > cd</span><span style="font-style:inherit;font-variant:inherit;marg in:0px;padding:0px;border:0px;vertical-align:baseline">()</span><span style ="font-style:inherit;font-variant:inherit;margin:0px;padding:0px;border:0 px;vertical-align:baseline"> </span><span style="font-style:inherit; font-variant:inherit;margin:0px;padding:0px;border:0px;vertical-align:basel ine">{</span><span style="font-style:inherit;font-variant:inherit;margin: 0px;padding:0px;border:0px;vertical-align:baseline"> builtin cd < /span><span style="font-style:inherit;font-variant:inherit;margin:0px;pad ding:0px;border:0px;vertical-align:baseline">&quot;$@&quot;</span><span sty le="font-style:inherit;font-variant:inherit;margin:0px;padding:0px;border :0px;vertical-align:baseline"> </span><span style="font-style:inheri t;font-variant:inherit;margin:0px;padding:0px;border:0px;vertical-align:bas eline">&amp;&amp;</span><span style="font-style:inherit;font-variant:inhe rit;margin:0px;padding:0px;border:0px;vertical-align:baseline"> ls  </span><span style="font-style:inherit;font-variant:inherit;margin:0px ;padding:0px;border:0px;vertical-align:baseline">-</span><span style="fon t-style:inherit;font-variant:inherit;margin:0px;padding:0px;border:0px;vert ical-align:baseline">l</span><span style="font-style:inherit;font-variant :inherit;margin:0px;padding:0px;border:0px;vertical-align:baseline">;</span ><span style="font-style:inherit;font-variant:inherit;margin:0px;padding: 0px;border:0px;vertical-align:baseline"> </span><span style="font-st yle:inherit;font-variant:inherit;margin:0px;padding:0px;border:0px;vertical -align:baseline">}&quot;</span></span></font></div><br>Le samedi 6 jui n 2015, enae &lt;<a href="mailto:"></ a>&gt; a écrit :<br><blockquote class="gmail_quote" style="ma rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Bonjour,<br>
<br>
dans le cadre d&#39;une application, je souhaite détecter le lancement d&#39;un programme (type: cp, mv) afin de lancer un script bash lorsque la commande est détectée.<br>
Y-a-t-il un moyen de faire ceci?<br>
Je vous remercie d&#39;avance pour votre aide.<br>
<br>
<br>
-- <br>
Lisez la FAQ de la liste avant de poser une question :<br>
<a href="http://wiki.debian.org/fr/FrenchLists" target="_blank">http:// wiki.debian.org/fr/FrenchLists</a><br>
<br>
Pour vous DESABONNER, envoyez un message avec comme objet &quot;unsubscribe &quot;<br>
vers <a></a><br>
En cas de soucis, contactez EN ANGLAIS <a></a><b r>
Archive: <a href="https://lists.debian.org/" targ et="_blank">https://lists.debian.org/</a><br>
<br>
</blockquote>

--089e0160b7be8e134005185a4e5e--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/CAAjVk69DyZDYpaQYEJYurdW9vzmp+62fD2+ty26dmQ5CoAu=