Katakanlah saya memulai suatu proses di terminal dan mengirimkan output ke standard error ketika sedang berjalan. Saya ingin memindahkan proses ke latar belakang dan juga membungkamnya pada saat yang sama.
Apakah ada cara untuk melakukan ini tanpa menghentikan proses dan memulainya lagi menggunakan &
dan > /dev/null 2>&1
? Saya bertanya-tanya apakah ada beberapa perintah yang melakukan bg
dan dapat mengubah deskriptor output dari proses target juga.
sumber
SIGSTOP
proses (atau seperti yang Anda katakan melakukan CTRL + Z ) tidak membungkam suatu proses. Ini menghentikan proses!Proses yang dijalankan dari terminal memiliki stdin, stdout dan stderr terikat ke terminal dan Anda tidak dapat melakukan apa-apa tanpa mendapatkan kembali kendali atas terminal itu ... Biasanya. Tetapi ada beberapa alat rumit yang benar-benar membiarkan Anda melakukannya. Lihatlah contoh ini . Dan program lain seperti yang
retty
disebutkan di sana.sumber
Saya tidak setuju dengan andcoz bahwa sudah terlambat untuk membungkam output.
Dengan asumsi proses sedang berjalan di latar depan, gunakan
Ctrl-Z
untuk menunda proses. Melakukannya akan melaporkan nomor pekerjaan dan ID proses. Anda dapat melanjutkan dan memindahkan proses ke latar belakang menggunakanbg %1
(untuk pekerjaan # 1). Meskipun ini memindahkan proses ke latar belakang, itu tidak membungkam output. Untuk membungkam output yang dapat Anda gunakangdb
untuk mengarahkan semua output/dev/null
.Ini telah dijelaskan dengan sangat baik sebelumnya di /programming/593724/redirect-stderr-stdout-of-a-process-after-its-been-started-using-command-lin/593764#593764 .
sumber
Namun alat baris perintah lainnya adalah
detach
. Versi terbaru mendukung penulisan pidfile, menggunakan file untuk stdin, stdout dan stderr, dan berjalan di latar depan. (Situs webdetach
juga membahas alat serupa.)http://inglorion.net/software/detach/
sumber