it-swarm-tr.com

Solaris'te kesik çizgiler olmadan tam işlem listesini nasıl alabilirim?

Solaris'te kesik çizgiler olmadan tam bir işlem listesi oluşturmanın bir yolu var mı? Aşağıdaki argümanlarla ps komutunu denedim:

 -f Tam bir liste oluşturur. (Tam listedeki sütunların 
 Önemi için aşağıya bakın - 
 İng.) 
 -l Uzun bir liste oluşturur. (Aşağıya bakınız.)

Yani, her ikisi de istediğimi yapıyor gibi görünüyor, ancak, ps man sayfasında daha aşağıda, bunu buluyorum:

 
 args Tüm argümanlarını bir 
 dizesi olarak veren komut. Uygulama bu değeri alan genişliğine 
 Kesebilir; daha fazla kesme olup olmadığı 
 uygulamaya bağlıdır. Temsil edilen 
 Dizesinin 
 Argümanının başladığı zaman 
 Komutuna aktarıldığı haliyle bir sürümü olup olmadığı veya 
 argümanları uygulama tarafından değiştirilmiş olabilir. Uygulamalar 
, 
 Argüman listelerini değiştirebilme ve bu modifica - 
 Yöntemin ps. 
 Çıktısına yansıtılmasına bağlı olamaz. Solaris uygulaması 
 80 bayta dizgi; dize, argüman listesinin 
 başladığında komuta aktarıldığı şekliyle 
 sürümüdür. 

Bu temelde çıktı kesilecek ve bu konuda yapabileceğim bir şey yok diyor. Buraya geliyorum. Elbette diğer insanlar bu problemle karşılaştılar ve belki de bunun etrafında bir yol var. Ben ps bunu yapamam tahmin ve bu yüzden bunu yapmak için başka araçlar kullanmanız gerekir. Bu doğru mu?

57
gabe.

deneyebilirsin

pargs <PID>

bu size tüm argümanların bir listesini verir

veya başka bir ps kullanın. Kök (veya bu konuda yeterli ayrıcalığa sahip herhangi bir kullanıcı) olarak çalıştırılırsa

/usr/ucb/ps auxww

size tüm argümanları verecek. SUNWscpu'nun parçası, "Kaynak Uyumluluğu, (Usr)"

62
Marcel G

Çekirdek, komut satırı bağımsız değişkenlerini izlemek için gerekli değildir. Bir program execve çağrısı yoluyla başlatıldığında, çekirdek bağımsız değişkenleri işlem belleğine kopyalamalıdır (örneğin, bir C programında argv olarak kullanılabilirler). Bundan sonra, çekirdek ilk komut satırı argümanlarını saklamak için kullanılan belleği atabilir. İşlem, bağımsız değişkenlerin kopyasının üzerine yazılmasına izin verilir. Yani argümanların izi olmayabilir.

Bazı unix varyantları, bağımsız değişkenlerin bir kopyasını bir biçimde tutar. Solaris /proc/$pid. OpenSolaris 2009.06 itibariyle, argümanların tek izi /proc/$pid/psinfo, burada aralarındaki boşluklarla birleştirilirler (böylece foo "one" "two" ve foo "one two") ve elde edilen dize 80 bayta kesildi. /proc/$pid/psinfopsargs sütununa yazdırır.

Bu arada, -f ve -l seçenekleri, alanların bir genişliğe kesilip kesilmeyeceğini değil, hangi alanların yazdırılacağını denetler.

ps -e çalışan tüm işlemlerin listesini verir. Ayrıca bu ps -elf.

2
ari

Hangi ps komutunu kullandığınıza bağlı olarak,

ps -auxw
0
Wes

prstat, şu anda çalışan işlemleri pids ve CPU kullanımı ile birlikte verecektir.

0
user41052