Saya menggunakan Ubuntu 16.04 dan saya membutuhkan tmux
solusi berikut karena saya ingin menjalankan proses timeout dengan sleep
seperti pada kasus khusus saya, saya tidak puas at
dan menemukan bug dengan nohup
(ketika menggabungkan nohup-sleep
). Sekarang, tmux
tampaknya sebagai alternatif terbaik karena memiliki mekanisme no-hangup sendiri dan sebenarnya berfungsi dengan baik dalam penggunaan manual (saya mengajukan pertanyaan hanya dalam hal mengotomatiskan proses yang sudah dapat saya lakukan secara manual dengannya).
Apa yang saya butuhkan:
Saya perlu cara untuk melakukan 3 tindakan berikut, semuanya dalam satu operasi:
- Melampirkan
tmux
sesi baru . - Menyuntikkan seperangkat perintah siap ke sesi itu, seperti
(sleep 30m ; rm -rf dir_name ; exit)
. Saya lebih suka set multi-line, dan bukan satu baris panjang. - Menjalankan perintah di atas mengatur saat itu selesai ditulis sebagai stdin di
tmux
sesi baru .
Dengan kata lain, saya ingin mengeksekusi kode yang diatur dalam tmux
sesi lain yang dibuat khusus untuk tujuan itu, tetapi untuk melakukan semuanya dalam satu operasi.
Catatan:
Saya bertujuan untuk melakukan semua dari sesi kerja asli saya (sesi yang paling sering saya kerjakan). Secara umum, saya tidak punya niat untuk mengunjungi sesi yang baru dibuat, saya hanya ingin membuatnya dengan kode yang dieksekusi secara otomatis dan hanya itu.
Jika memungkinkan, saya lebih suka solusi heredoc. Saya pikir ini paling efisien.
sumber
1.
Ada dua cara untuk melakukannya, yang pertama melibatkan membuat skrip sementara (yang berisi kode) dan menjalankannya dengan penciptaan dan yang kedua adalah heredoc cara.2.
Jika cara kedua berfungsi (ketika setiap baris gema berisi setiap baris kode heredoc) mengapa kita harus melihat ini sebagai peretasan jika itu adalah kode Bash yang valid? Mungkin karena barisan heredoc digaungkan dan tidak dieksekusi secara teratur di heredoc?/dev/shm
. Ini juga merupakan peretasan karena lebih rumit, sulit dibaca, dipahami dan dipelihara daripada sekadar menulis skrip ke file biasa dan memulainya dengantmux
.1.
pertanyaan Anda) cara .tmux new-session -d -s "myTempSession" /opt/my_script.sh
tidak membuka file sementara bagi saya untuk menempelkan kode ... Yang saya butuhkan adalah membuka skrip langsung dari sesi saat ini, atau setidaknya sesuatu untuk pindah ke sesi baru dan kemudian langsung kembali ke sesi Sekarang. BTW Saya berencana untuk memberikan hadiah untuk semua bantuan Anda karena ini adalah yang paling bisa saya lakukan untuk mengucapkan terima kasih dan saya bisa memberikan hadiah dalam 11 jam.Juga lihat /server/339390/run-command-in-detached-tmux-session untuk contoh tentang penggunaan perintah send-keys pada panel terpisah.
sumber