İlk komutunuzla ilgili bir sorun stderr'i stdout'un bulunduğu yere yönlendirmenizdir (eğer $ 'ı yorumda önerildiği şekilde değiştirdiyseniz), ve sonra stdout'u bir günlük dosyasına yönlendirdiniz, ancak bu, yönlendirilen stderr'i çekmiyor. . Bunu diğer sıraya göre yapmalısınız, önce gitmesini istediğiniz yere stdout gönderin, sonra stderr adresini adresindeki stderr'e gönderin.
some_cmd > some_file 2>&1 &
ve sonra arka plana göndermek için & üzerine atabilirsin. İşlere jobs
komutla erişilebilir . jobs
size çalışan işleri gösterecek ve numaralandıracaktır. Daha sonra% gibi bir sayı kullanarak işler hakkında konuşabilirsiniz kill %1
.
Ayrıca & ucunda olmadan komutu ile askıya alabilirsiniz , arka planda koymak ve ön plana geri getirmek Ctrlziçin bg
komutu kullanın fg
. Komutla birlikte jobs
, bu güçlü.
Yukarıdaki kısmı komutları yazdığınız sıra ile açıklığa kavuşturmak için. Varsayalım şekilde hataları stdout'u adresi 1001, adres 1002 ve dosya komut soldan sağa okur 1008, bu nedenle ilk şey sizindir görür 2>&1
o zaman görür, adres 1001 Stderr hareket ettiği > file
, 1008 stdout'u hareket ettiği ancak stderr'i 1001'de tutar. 1001'de işaret eden her şeyi çekmez ve 1008'e taşır, ancak sadece stdout'a başvurur ve dosyaya taşır.
Bunun tersi şekilde, stdout'u 1008'e, ardından stderr'i de stdout'un işaret ettiği noktaya, 1008'e taşır. Bu şekilde ikisi de tek dosyaya işaret edebilir.
2>$1
muhtemelen olması gerekiyordu2>&1
.