Diberikan PC komoditas, kami ingin menggunakannya untuk menjalankan beberapa tugas di latar belakang sepanjang waktu.
Pada dasarnya, kami ingin memiliki perintah seperti:
add-task *insert command here*
list-tasks
remove-task(s)
Tugas yang ditambahkan hanya harus dimasukkan ke dalam antrian dan dieksekusi satu demi satu di latar belakang (tetap berjalan setelah keluar dari shell).
Apakah ada skrip / program sederhana yang melakukan ini?
process
process-management
scheduling
dagnelies
sumber
sumber
batch
perintah "tidak melakukan paralelisasi". Biasanya ada penundaan 60 detik default antara memulai satu pekerjaan dan memulai berikutnya; namun, tidak ada yang membuat pekerjaan berikutnya menunggu yang pertama selesai -atd
akan dengan senang hati memulai pekerjaan dari antrean batch segera setelah nilai yang ditentukan oleh-b
opsi telah berlalu (lihatatd
halaman manual).Solusi lain adalah menggunakan
lpd
, dan membuat "driver cetak" khusus yang menjalankan pekerjaan Anda. Seorang teman membantu saya mengatasi hal ini ketika saya memiliki permintaan serupa. Buat skrip seperti ini, dan masukkan/tmp/batch.sh
:Lalu lari:
Itu mulai antrian, dan Anda bisa membuat lebih banyak dengan menggunakan nama lain, bukan batch1. Tambahkan pekerjaan dengan:
Mengelola pekerjaan dengan
lpq
,lprm
, danlpstat
. Jika Anda menginginkan lebih banyak fleksibilitas dengan meneruskan argumen ke pekerjaan Anda, Anda dapat membuat skrip batch.sh lebih menarik.(Saya mencoba
batch
sebelum turun rute ini, tetapi entah itu tidak berfungsi sebagai antrian di OSX, atau saya salah menggunakannya.)sumber
batch
.Ada banyak sistem antrian, tetapi sering kali sangat khusus.
Anda mungkin melihat
at
penjadwal. Ini seperticron
dalam beberapa hal tetapi pengaturan lebih seperti antrian untuk pekerjaan satu kali daripada untuk pekerjaan yang berulang. Itu dapat "menjadwalkan" hal-hal pada kriteria selain waktu, seperti beban sistem atau urutan pekerjaan.Distro favorit Anda hampir pasti memiliki paket untuk itu.
sumber
Saya perhatikan pertanyaan ini berumur beberapa tahun, jadi mungkin tidak membantu poster aslinya, tetapi mungkin membantu orang lain.
Pertama: "task spooler" adalah jawabannya. Ini cukup kuat dan Fedora setidaknya memilikinya.
Tetapi banyak dari server yang saya gunakan, saya tidak dapat menginstal paket arbitrer tanpa banyak kerumitan, jadi saya memerlukan sesuatu yang idealnya murni bash (atau perl, atau semacamnya).
Setelah berjuang dengan ini untuk sementara waktu, saya datang dengan implementasi bash murni yang tampaknya berfungsi dengan baik sejauh ini. Anda dapat menemukannya di https://github.com/sitaramc/bq .
Ini hanya satu skrip bash sehingga pemasangannya sepele. Namun, ini memenuhi persyaratan kedua dan ketiga Anda (tetapi itu juga sepele untuk menerapkannya juga).
Script dikomentari secara bebas dan Anda harus dapat memeriksanya dalam beberapa menit jika Anda mau.
sumber