ps -o args= -p "$pid"
Vous indiquera la liste d'arguments donnée à la dernière commande exécutée par le processus (ou s'il n'en a exécuté aucune, celle exécutée par son parent ...) à condition que le processus n'ait pas remplacé sa liste d'arguments par la suite.
ps
montrera cette liste d'arguments concaténée avec des espaces et jusqu'à une limite que vous pourrez peut-être augmenter avec certaines ps
implémentations en ajoutant quelques -w
options). Sous Linux, vous pouvez voir l'arglist séparé par des octets NUL dans /proc/$pid/cmdline
.
lsof +fg -ap "$pid" -d 0-2
Vous dira à quoi pointent les descripteurs de fichiers stdin, stdout et stderr du processus et le mode dans lequel ils ont été ouverts (comme W,AP
pour l'écriture seule avec ajout comme si une >>
redirection était utilisée dans un shell POSIX).
Stéphane Chazelas
la source
lsof
pour détecter que le processus est redirigé versmyapp.log
readlink /proc/$pid/fd/1
Vous pouvez utiliser la
ps
commande et spécifier le pid à examiner avec le-p
commutateur, en utilisant le-f
commutateur pour donner une liste complète ou-l
pour une liste longue plus détaillée.Comme exemple de sortie:
Cela génère cependant une ligne d'en-tête, que vous ne voudrez peut-être pas dans votre fichier journal. Vous pouvez couper cela en utilisant l'
-h
option, si votre pid était 1234:Notez que j'ai redirigé la sortie en utilisant
>>
pour ajouter à votre fichier journal.la source
tail -n+1
(nécessite GNU, mais Q était Linux / Ubuntu). Ou évitez le problème avecps -h{f,l}p 1234
(également GNU).tail -n1
fonctionne certainement sur Ubuntu, pourquoi est-ce+
nécessaire?tail -n+2
qui montre toutes les lignes sauf la première.tail -n1
n'affiche que la dernière ligne. Comparez:seq 1 10 | tail -n+2
et ainsi de suite.-h
car cela évite un tuyau inutile et un processus supplémentaire.En utilisant,
ps -f
vous pouvez vérifier la liste des arguments et la rediriger vers n'importe quel fichier.Donc, dans ce cas, utilisez simplement
ps -ef | grep 1234 > myapp.log
Veuillez consulter cette page de manuel ps .
la source
ps -ef | grep 'foo' | grep -v grep
grep -v
j'utilise cette astuce:grep '123[4]'