wanneer ik de opdracht ps -aux
uitvoer op mijn linux-server, waarmee ik verbinding heb gemaakt via putty, zijn maar weinig processen te lang om in mijn huidige vensterbreedte te passen. Is er een alternatief?
— Bijwerken —
Het spijt me voor het downgraden, ik dacht dat anderen het antwoord ook niet nuttig zouden vinden, dus ik heb het gedowngraded.
Hier is de informatie waar je om vroeg.
hadoop-user@hadoop-desk:~$ echo $TERM
xterm
hadoop-user@hadoop-desk:~$ stty -a
speed 38400 baud; rows 47; columns 158; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
hadoop-user@hadoop-desk:~$ echo $COLUMNS
158
Antwoord 1, autoriteit 100%
Als u de auxww
-vlaggen gebruikt, ziet u het volledige pad naar uitvoer in zowel uw terminalvenster als vanuit shellscripts.
darragh@darraghserver ~ $uname -a
SunOS darraghserver 5.10 Generic_142901-13 i86pc i386 i86pc
darragh@darraghserver ~ $which ps
/usr/bin/ps<br>
darragh@darraghserver ~ $/usr/ucb/ps auxww | grep ps
darragh 13680 0.0 0.0 3872 3152 pts/1 O 14:39:32 0:00 /usr/ucb/ps -auxww
darragh 13681 0.0 0.0 1420 852 pts/1 S 14:39:32 0:00 grep ps
ps aux
geeft een overzicht van alle processen die door alle gebruikers worden uitgevoerd. Zie man ps
voor details. De vlag ww
stelt onbeperkte breedte in.
-w Wide output. Use this option twice for unlimited width.
w Wide output. Use this option twice for unlimited width.
Ik vond het antwoord op de volgende blog:
http://www.snowfrog. net/2010/06/10/solaris-ps-output-truncated-at-80-columns/
Antwoord 2, autoriteit 93%
Het is waarschijnlijk dat u een pager gebruikt zoals less
of most
sinds de uitvoer van ps aux
is langer dan een screenful. Als dit het geval is, zullen de volgende opties ervoor zorgen (of forceren) dat lange regels teruglopen in plaats van worden afgekapt.
ps aux | less -+S
ps aux | most -w
Als je een van de volgende commando’s gebruikt, worden regels niet omwikkeld, maar kun je je pijltjestoetsen of andere bewegingstoetsen gebruiken om naar links en rechts te scrollen.
ps aux | less -S # use arrow keys, or Esc-( and Esc-), or Alt-( and Alt-)
ps aux | most # use arrow keys, or < and > (Tab can also be used to scroll right)
Regels worden altijd omwikkeld voor more
en pg
.
Als ps aux
in een pijpleiding wordt gebruikt, is de optie w
niet nodig aangezien ps
alleen schermbreedte gebruikt wanneer de uitvoer naar de terminal is .
Antwoord 3, autoriteit 76%
eenvoudig en perfect:
ps -efww
knipt regel niet af
Antwoord 4, autoriteit 42%
Gooi het gewoon op de kat, die automatisch doorloopt
ps aux | cat
Antwoord 5, autoriteit 9%
Als je het een paar w
s doorgeeft, wordt de weergavebreedte genegeerd.
Antwoord 6, autoriteit 8%
Als u het uitvoerformaat handmatig opgeeft, moet u er ook voor zorgen dat de optie args
laatsteis in de lijst met uitvoervelden, anders wordt deze afgekapt.
ps -A -o args,pid,lstart
geeft
/usr/lib/postgresql/9.5/bin 29900 Thu May 11 10:41:59 2017
postgres: checkpointer proc 29902 Thu May 11 10:41:59 2017
postgres: writer process 29903 Thu May 11 10:41:59 2017
postgres: wal writer proces 29904 Thu May 11 10:41:59 2017
postgres: autovacuum launch 29905 Thu May 11 10:41:59 2017
postgres: stats collector p 29906 Thu May 11 10:41:59 2017
[kworker/2:0] 30188 Fri May 12 09:20:17 2017
/usr/lib/upower/upowerd 30651 Mon May 8 09:57:58 2017
/usr/sbin/apache2 -k start 31288 Fri May 12 07:35:01 2017
/usr/sbin/apache2 -k start 31289 Fri May 12 07:35:01 2017
/sbin/rpc.statd --no-notify 31635 Mon May 8 09:49:12 2017
/sbin/rpcbind -f -w 31637 Mon May 8 09:49:12 2017
[nfsiod] 31645 Mon May 8 09:49:12 2017
[kworker/1:0] 31801 Fri May 12 09:49:15 2017
[kworker/u16:0] 32658 Fri May 12 11:00:51 2017
maar ps -A -o pid,lstart,args
geeft je de volledige opdrachtregel:
29900 Thu May 11 10:41:59 2017 /usr/lib/postgresql/9.5/bin/postgres -D /tmp/4493-d849-dc76-9215 -p 38103
29902 Thu May 11 10:41:59 2017 postgres: checkpointer process
29903 Thu May 11 10:41:59 2017 postgres: writer process
29904 Thu May 11 10:41:59 2017 postgres: wal writer process
29905 Thu May 11 10:41:59 2017 postgres: autovacuum launcher process
29906 Thu May 11 10:41:59 2017 postgres: stats collector process
30188 Fri May 12 09:20:17 2017 [kworker/2:0]
30651 Mon May 8 09:57:58 2017 /usr/lib/upower/upowerd
31288 Fri May 12 07:35:01 2017 /usr/sbin/apache2 -k start
31289 Fri May 12 07:35:01 2017 /usr/sbin/apache2 -k start
31635 Mon May 8 09:49:12 2017 /sbin/rpc.statd --no-notify
31637 Mon May 8 09:49:12 2017 /sbin/rpcbind -f -w
31645 Mon May 8 09:49:12 2017 [nfsiod]
31801 Fri May 12 09:49:15 2017 [kworker/1:0]
32658 Fri May 12 11:00:51 2017 [kworker/u16:0]
Antwoord 7, autoriteit 5%
u kunt het uitvoerformaat instellen, bijvoorbeeld om alleen het commando en de proces-ID te zien.
ps -eo pid,args
zie de man-pagina van ps voor meer uitvoerformaten. als alternatief kunt u de opties -w
of --width n
gebruiken.
Als al het andere faalt, is hier nog een oplossing (alleen om je lange cmds te zien)
awk '{ split(FILENAME,f,"/") ; printf "%s: %s\n", f[3],$0 }' /proc/[0-9]*/cmdline
Antwoord 8, autoriteit 2%
Sorry dat ik te laat op het feest was, maar heb zojuist deze oplossing voor het probleem gevonden.
De regels zijn afgekapt omdat ps erop staat de waarde $COLUMNS te gebruiken, zelfs als de uitvoer op dat moment niet het scherm is. Wat een bug is, IMHO. Maar makkelijk te omzeilen, gewoon maken
ps denkt dat je een superbreed scherm hebt, d.w.z. stel KOLOMMEN hoog in voor de duur van het ps-commando. Een voorbeeld:
$ ps -edalf # truncates lines to screen width
$ COLUMNS=1000 ps -edalf # wraps lines regardless of screen width
Ik hoop dat dit nog steeds nuttig is voor iemand. Alle andere ideeën leken veel te ingewikkeld 🙂
Antwoord 9
Als geen van de bovenstaande oplossingen werkt, is de uitvoer van ps
niet jouw probleem. Misschien moet je putty instellen op lange regels inpakken?
Anders hebben we meer informatie nodig.
Antwoord 10
Als je grep
het commando dat je zoekt met een pipe van ps aux gebruikt, zal het de tekst automatisch laten teruglopen. Ik heb veel van de andere antwoorden hier gebruikt, maar soms, als je op zoek bent naar iets specifieks, is het fijn om gewoon grep
te gebruiken en je weet dat het regels zal omwikkelen.
Bijvoorbeeld ps aux | grep ffmpeg
.
Antwoord 11
Ik vond dit antwoord en dat is wat het voor mij deed omdat geen van de bovenstaande antwoorden werkte
https://unix.stackexchange.com/questions/91561/ps -volledige-opdracht-is-te-lang
Kortom, de kernel beperkt mijn cmd-regel.
Antwoord 12
Bewijs voor inkorting genoemd door anderen, (een persoonlijk voorbeeld)
foo=$(ps -p 689 -o command); echo "$foo"
COMMAND
/opt/conda/bin/python -m ipykernel_launcher -f /root/.local/share/jupyter/runtime/kernel-5732db1a-d484-4a58-9d67-de6ef5ac721b.json
Dat ^^ die lange uitvoer in een variabele vastlegt
In tegenstelling tot
ps -p 689 -o command
COMMAND
/opt/conda/bin/python -m ipykernel_launcher -f /root/.local/share/jupyter/runtim
Omdat ik dit probeerde vanaf een Docker jupyter-notebook, moest ik dit natuurlijk met de knal uitvoeren..
!foo=$(ps -p 689 -o command); echo "$foo"
Verrassend genoeg laten jupyter-notebooks je zelfs dat uitvoeren! Maar ik ben blij dat ik kan helpen het aanstootgevende notitieboekje te vinden dat al mijn geheugen in beslag neemt =D