Apakah mungkin untuk menghentikan output dari perintah setelah bg?

8

Misalkan situasi ini

wget http://file 

wget mulai mengunduh file.

Saya letakkan di latar belakang.

^Z
bg

Perintah masuk ke latar belakang.

Tetapi hasilnya juga masih ada di konsol - jika konsol masih terbuka.

Apakah mungkin untuk menghentikan output perintah?

Wget hanyalah sebuah contoh; pikirkan sebuah perintah yang menulis banyak output.

Di konsol, saya tahu adalah mungkin untuk melakukan bgdan kemudian menutup terminal dan membuka yang lain, tetapi bagaimana jika saya hanya memiliki satu terminal yang tersedia dan tidak ada pseudo-terminal?

elbarna
sumber
2
Lihat cara mengubah redirection output dari proses yang berjalan . Anda dapat mencoba reptyr.
Mark Plotnick

Jawaban:

2

Berikut adalah solusi yang benar-benar mengarahkan kembali output dari suatu perintah ketika sedang berjalan: /superuser/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a- file log

Untuk solusi yang lebih bisa digunakan dalam skenario setiap hari menggunakan terminal, Anda bisa melakukannya wget -o log http://file & untuk menjalankan wgetdi latar belakang dan menulis outputnya logdaripada terminal Anda. Tentu saja, Anda tidak akan melihat output sama sekali dalam hal ini (bahkan jika Anda berlari wgetdi latar depan), tetapi Anda bisa lakukan tail -f loguntuk melihat output saat itu tumbuh.

PawkyPenguin
sumber
2

Apakah maksud Anda bahwa Anda ingin tetap menjalankan wget (atau cmd lainnya) tanpa mengeluarkan pesan ke konsol? Jika itu pertanyaannya, Anda bisa mencobaredirection

$ wget http://file > /dev/null

cmd di atas akan mengarahkan ulang stdoutke /dev/nulldan Anda tidak akan melihat pesan kecuali pesan kesalahan. Jika Anda tidak ingin melihat pesan kesalahan juga, coba ini

$ wget http://file 1>/dev/null 2>&1

Anda dapat google redirectionuntuk informasi lebih rinci.

Charles
sumber