task-spooler dapat membantu Anda.
Seperti di freshmeat.net :
task spooler adalah sistem batch Unix di mana tugas spooled dijalankan satu demi satu. Jumlah pekerjaan yang harus dijalankan sekaligus dapat diatur kapan saja. Setiap pengguna di setiap sistem memiliki antrian pekerjaannya sendiri. Tugas dijalankan dalam konteks yang benar (yaitu enqueue) dari setiap shell / proses, dan output / hasilnya dapat dengan mudah dipantau. Ini sangat berguna ketika Anda tahu bahwa perintah Anda bergantung pada banyak RAM, banyak penggunaan disk, memberikan banyak output, atau untuk alasan apa pun lebih baik tidak menjalankan semuanya pada saat yang sama, sementara Anda ingin tetap menggunakan sumber daya Anda sibuk untuk manfaat maksimum. Antarmuka memungkinkan penggunaannya dengan mudah dalam skrip.
Task-spooler tersedia di Debian , Ubuntu dan distro lainnya.
Ini memungkinkan Anda memiliki antrian tugas untuk dijalankan, dan mengakses hasilnya hanya sesuai keinginan.
Sebagai contoh:
$ tsp sleep 5
0
$ tsp sleep 5
1
$ tsp
ID State Output E-Level Times(r/u/s) Command [run=1/1]
2 running /tmp/ts-out.ZWn6Le sleep 5
1 finished /tmp/ts-out.Fhlcle 0 5.00/0.00/0.01 sleep 5
Jika Anda menjalankan banyak pekerjaan di latar belakang, itu pasti akan membantu Anda.
Anda dapat menjalankannya secara berurutan atau dalam jumlah slot yang telah ditentukan. Anda juga dapat membuat dependensi di antara tugas-tugas (jalankan task1 hanya jika task0 berhasil diselesaikan).
Raúl Salinas-Monteagudo
sumber
Pengalihan output perintah tampaknya tidak relevan karena pemberitahuan dikirim oleh shell ketika pekerjaan dimulai secara tidak sinkron. Lebih tepatnya, ini adalah fitur shell (fonctionality) yang terkait dengan kontrol pekerjaan .
Di sini, kutipan yang berasal dari "Bash Reference Manual", bab "Kontrol Pekerjaan", bagian satu.
Perhatikan bahwa skrip shell tidak menampilkan pemberitahuan ini.
Kenyataannya
Zsh
Dokumentasi Zsh memberikan indikasi serupa tentang pemberitahuan ini, lihat
man 1 zshmisc
, bagian "JOBS". Notifikasi ini tidak ditampilkan ketika kontrol pekerjaan dinonaktifkan.Pesta
Tampaknya Bash selalu menampilkan misalnya
[1] 25647
. Misalnya, "pemberitahuan akhir"[1]+ Done true
tidak ditampilkan ketika kontrol pekerjaan dinonaktifkan.Kontrol pekerjaan dinonaktifkan
Kesimpulan
Saya tidak tahu apakah menonaktifkan kontrol pekerjaan untuk menyembunyikan notifikasi adalah hal yang baik?
Sumber daya
man 1 zshmisc
, bagian JOBS.man 1 zshoptions
.sumber
Anda dapat meminta
zsh
sebagai shell non-interaktif untuk menonaktifkan pemberitahuan pekerjaan.sumber
Lihat contoh berikut:
Itu bekerja dengan baik. Tidak perlu
( )
: itu membuat subkulit yang tidak diperlukan.{ }
hanyalah perintah pengelompokan.sumber
[2] 49591
dan[2] + 49591 exit 1 find /usr
, kapan harus mencetak keduanya?Ini adalah pertanyaan lama, tetapi kemungkinan jawaban (dalam bash, tidak diuji dengan zsh) adalah dengan menggunakan kontrol pekerjaan di subkulit:
(command & wait)
Catatan: bash menekan pesan pekerjaan latar belakang mulai / berakhir di subkulit, dan tidak perlu pengalihan.
sumber
(sleep 5 & wait)
penundaan 5 detik.