J'ai parcouru un peu les forums askubuntu, stackoverflow et consorts, … en vain. Du coup, j'en recours à votre échantillon d'experts en unix/linux/bash - il doit bien y en avoir une poignée ici. Donc voilà : j'ai un problème pour récupérer les PID de commandes lancées après des nohup ($ nohup commande > nohup.out &).
* Lancer top et kill les PID associés à mes tâches n'a pas marché.
* ps -ef |grep nohup.out me donne un PID, un PPID, mais aucun des deux ne correspond au PID permettant de tuer mon process (je viens de le vérifier en relançant un nouveau nohup, puis cette ligne, c'est pas les mêmes).
Question : Ya vraiment aucun moyen de récupérer les PID de mes process? Il faut que je les note manuellement à chaque fois? C'est quoi cette enculerie?
L'intérêt étant de tuer proprement les process en question. Le help succinct de nohup ne m'a rien donné non plus.
nohup --help
Usage: nohup COMMAND [ARG]...
or: nohup OPTION
Run COMMAND, ignoring hangup signals.
--help display this help and exit
--version output version information and exit
If standard input is a terminal, redirect it from /dev/null.
If standard output is a terminal, append output to `nohup.out' if possible,
`$HOME/nohup.out' otherwise.
If standard error is a terminal, redirect it to standard output.
To save output to FILE, use `nohup COMMAND > FILE'.
Merci de passer ce topic en résolu.
ps aux
kill -9 id
Si cette méthode sale ne fonctionne pas, je te propose également d'installer linux.
kill -9 id
Si cette méthode sale ne fonctionne pas, je te propose également d'installer linux.
Mais tu veux faire quoi au juste ? Te logguer en ssh, lancer un script et te délogguer sans que ca flingue ton script ?
Si c'est juste ça, lance le dans un tmux ou un screen.
Sinon tu fais ton nohup et tu récupères le pid dans un fichier avec echo $!
Par contre je ne vois pas pourquoi tu ne peux pas le récupérer avec ps . T'es sur qu'il tourne encore ?
Si c'est juste ça, lance le dans un tmux ou un screen.
Sinon tu fais ton nohup et tu récupères le pid dans un fichier avec echo $!
Par contre je ne vois pas pourquoi tu ne peux pas le récupérer avec ps . T'es sur qu'il tourne encore ?
Et oui fais pas chier avec ton nohup et lance un screen.
et avec killall et le nom du/des process au lieu de l'id ?
http://www.linux-france.org/article/man ... all-1.html
tuer tuer tuer, tuer les tous !
http://www.linux-france.org/article/man ... all-1.html
tuer tuer tuer, tuer les tous !
Dernière modification par Kane le lun. déc. 01, 2014 8:41 pm, modifié 1 fois.
la solution de luc chatel
[video][/video]
[video][/video]
No pussy blues.
Merci, je suis déjà sous linux.
ps aux me sort la même chose que ps -ef, ce sont pas les bons PID étrangement.
Je veux lancer mes commandes, fermer mon terminal au besoin, et récupérer toutes les sorties dans un fichier (nohup.out ici)
Et surtout, surtout, pouvoir tout arrêter proprement quand je veux.


ps aux me sort la même chose que ps -ef, ce sont pas les bons PID étrangement.
Je veux lancer mes commandes, fermer mon terminal au besoin, et récupérer toutes les sorties dans un fichier (nohup.out ici)
Et surtout, surtout, pouvoir tout arrêter proprement quand je veux.


Dernière modification par sed le lun. déc. 01, 2014 9:00 pm, modifié 1 fois.
Cet homme a raison.rain a écrit :Et oui fais pas chier avec ton nohup et lance un screen.
Sinon tu as ca :
http://stackoverflow.com/questions/1738 ... up-process
mais tu n'as pas du bien chercher.
Dernière modification par noway le lun. déc. 01, 2014 9:02 pm, modifié 1 fois.
Pays du tiers monde explique cela.
Sinon le echo $! me renvoie le bon PID mais je dois le lancer juste après le nohup et sauver la sortie dans un fichier? Je l'ai vu passer sur un forum justement cette solution (justement ton lien noway). Quand le gars dit "Alternatively, you can find the PID later on by ps -ef output | grep "command name" and locate the PID from there." > non ça ne marche pas, les PID sont pas les mêmes comme montré sur mon screen. Et oui, ma question se référait plutôt à un cas de figure où on n'a pas pensé à sauver (manuellement) le PID initialement. Je vais juste prendre l'habitude de tout le temps sauver le PID avec echo $! > save_PIDmerde, mais c'est donc bien une enculerie de ce que j'en perçois là. Pour le killall, j'ai plusieurs process avec le même nom donc je préfère éviter.
Sinon le echo $! me renvoie le bon PID mais je dois le lancer juste après le nohup et sauver la sortie dans un fichier? Je l'ai vu passer sur un forum justement cette solution (justement ton lien noway). Quand le gars dit "Alternatively, you can find the PID later on by ps -ef output | grep "command name" and locate the PID from there." > non ça ne marche pas, les PID sont pas les mêmes comme montré sur mon screen. Et oui, ma question se référait plutôt à un cas de figure où on n'a pas pensé à sauver (manuellement) le PID initialement. Je vais juste prendre l'habitude de tout le temps sauver le PID avec echo $! > save_PIDmerde, mais c'est donc bien une enculerie de ce que j'en perçois là. Pour le killall, j'ai plusieurs process avec le même nom donc je préfère éviter.
Dernière modification par sed le lun. déc. 01, 2014 9:20 pm, modifié 1 fois.
Je pense que tu te trompes un peut dans ce que tu veux faire (ou alors je n'ai rien compris) car chez moi ca marche™
Ce que tu cherches ne serait pas plutôt le PID d'un process lancé dans un script qui a été lancé avec un nohup ? (le echo $! te renvoi le PID de python et pas de l'exe dans ton script)
code : Tout sélectionner
MacBook-Air:~ noway$ nohup sleep 30 &
[1] 31464
MacBook-Air:~ noway$ appending output to nohup.out
MacBook-Air:~ noway$ ps -eaf | grep sleep | grep -v grep
501 31464 31434 0 9:13 ttys000 0:00.01 sleep 30
Dernière modification par noway le lun. déc. 01, 2014 9:19 pm, modifié 1 fois.
tannat@tannat:~/Desktop/$ ps -eaf | grep "python mon_script.py asile" | grep -v grep
tannat 10360 10148 0 11:17 pts/1 00:00:00 python mon_script.py asile
merci bien, et à dans 2 jours pour une nouvelle question de noob.
tannat 10360 10148 0 11:17 pts/1 00:00:00 python mon_script.py asile
merci bien, et à dans 2 jours pour une nouvelle question de noob.
http://ss64.com/bash/ps.html
je pense que tout le problème et la confusion venaient du fait que je lance mes scripts via ssh, donc le -a était requis pour voir mon PID parent, je sais pas, simple hypothèse.
je pense que tout le problème et la confusion venaient du fait que je lance mes scripts via ssh, donc le -a était requis pour voir mon PID parent, je sais pas, simple hypothèse.
Ptain je comprends pourquoi linux protège si bien la virginité.
™
Je ne suis pas Niark²
Je ne suis pas Niark²
As tu appuyé sur B ?
I think I'm dumb
BENOIT HAMON 2017 !
BENOIT HAMON 2017 !
controle alt suppr, fin de tâche sur linux.exe
de rien fils
de rien fils
« On t'nique ta mère et ta grand-mère, si elle est toujours en vie » - B2O
Sur tes screenshots, on retrouve bien les meme pid, c'est juste que top les classe par utilisation CPU (le 10186 par ex).
Installe htop, c'est mieux fichu pour s'y retrouver et tu peux envoyer des signaux facilement.
a Lift the BSD-style "only yourself" restriction, which
is imposed upon the set of all processes when some
BSD-style (without "-") options are used or when the ps
personality setting is BSD-like.
-a Select all processes except both session leaders (see
getsid(2)) and processes not associated with a
terminal.
-e Select all processes. Identical to -A.
donc 'ps -eaf' bof bof. Avec 'ps -ef' tu aurais du pouvoir 'grep'er sur le nom de ton script.
Bref. Regarde quand meme du coté de screen ou tmux (plutot ce dernier, mais j'imagine que c'est comme vim ou emacs).
Une cheat sheet pour commencer:
http://www.mechanicalkeys.com/files/os/notes/tm.html
Installe htop, c'est mieux fichu pour s'y retrouver et tu peux envoyer des signaux facilement.
La commande ps ne réagit pas de la meme facon si tu mets les options précédées ou non d'un '-':je pense que tout le problème et la confusion venaient du fait que je lance mes scripts via ssh, donc le -a était requis pour voir mon PID parent, je sais pas, simple hypothèse.
a Lift the BSD-style "only yourself" restriction, which
is imposed upon the set of all processes when some
BSD-style (without "-") options are used or when the ps
personality setting is BSD-like.
-a Select all processes except both session leaders (see
getsid(2)) and processes not associated with a
terminal.
-e Select all processes. Identical to -A.
donc 'ps -eaf' bof bof. Avec 'ps -ef' tu aurais du pouvoir 'grep'er sur le nom de ton script.
Bref. Regarde quand meme du coté de screen ou tmux (plutot ce dernier, mais j'imagine que c'est comme vim ou emacs).
Une cheat sheet pour commencer:
http://www.mechanicalkeys.com/files/os/notes/tm.html
sinon ce titre de fil putain
Récupérer le PID d'un process après un nohup
sans déconner arrête tout, inspire et expire profondément puis encule ton chat
Récupérer le PID d'un process après un nohup
sans déconner arrête tout, inspire et expire profondément puis encule ton chat
« On t'nique ta mère et ta grand-mère, si elle est toujours en vie » - B2O
D'ailleurs sed, en butant le parent, le fils est censé mourrir aussi ce qui n'est selon tes dires pas le cas, ce qui remet en question toute l'informatique unix et va sans doute troubler le sommeil de plus d'un ici.noway a écrit : Ce que tu cherches ne serait pas plutôt le PID d'un process lancé dans un script qui a été lancé avec un nohup ? (le echo $! te renvoi le PID de python et pas de l'exe dans ton script)
Enculé va.
su-per
Bah il n'y a pas des Unix ou le process devient orphelin ?
Anna Navarre: You're wearing sunglasses on a night operation?
JC Denton: My vision is augmented.
JC Denton: My vision is augmented.
Genre ça : http://en.wikipedia.org/wiki/Orphan_process
Anna Navarre: You're wearing sunglasses on a night operation?
JC Denton: My vision is augmented.
JC Denton: My vision is augmented.