Sebagai tindak lanjut dari pertanyaan ini , saya ingin tahu di mana STDOUT dan STDERR dari program yang saya jalankan disown -hdiarahkan ke.
Sebagai tindak lanjut dari pertanyaan ini , saya ingin tahu di mana STDOUT dan STDERR dari program yang saya jalankan disown -hdiarahkan ke.
Jawaban:
disowntidak mengubah program STDOUT / ERR. Mereka masih akan pergi ke mana pun Anda mengarahkan mereka (menggunakan >dll.) Jika Anda tidak mengarahkan mereka, mereka akan terus masuk ke terminal tempat Anda memulai program (sampai Anda menutup terminal itu, dalam hal ini mereka akan dibuang).
Untuk menggambarkan, jalankan ini di terminal:
bash -c 'while true; do sleep 1; echo hi; done' &
Ini akan mencetak "hai" setiap detik (dan Anda sangat kesal ;-)). Jika Anda disownprogram setelah memulai, "hai" hanya akan melanjutkan. Anda perlu menemukan PID shell (menggunakan mis. Ps) dan membunuhnya untuk menghentikannya.
Edit:
Berdasarkan komentar, mungkin yang benar-benar ingin Anda lakukan adalah memulihkan output dari program setelah Anda disownmengeditnya dan menutup terminal yang digunakan. Ini dijelaskan dalam pertanyaan ini: Nohup jarak jauh yang sebenarnya dengan tcsh ( terima kasih kepada quack quixote).