Dari halaman beep man di mesin Ubuntu saya:
KEBAKARAN IOCTL
Beberapa pengguna akan menghadapi situasi di mana bip mati dengan keluhan dari ioctl (). Alasan untuk ini, karena Peter Tirsek cukup baik untuk menunjukkan kepada saya, berasal dari bagaimana kernel menangani upaya bip untuk menyodok (untuk non-programmer: ioctl adalah semacam fungsi catch-all yang memungkinkan Anda menyodok pada hal-hal yang tidak memiliki mekanisme poking-at yang telah ditentukan sebelumnya) tty, yaitu bagaimana beep. Ceritanya adalah, kernel memeriksa apakah:
Apa artinya ini adalah bahwa root selalu dapat membuat beep bekerja (sepengetahuan saya!), Dan bahwa setiap pengguna lokal dapat membuat beep bekerja, TETAPI pengguna jarak jauh non-root tidak dapat menggunakan beep dalam keadaan alami itu.
Ini bisa menjadi alasan mengapa bip menolak untuk bekerja dari jarak jauh. Anda dapat memeriksa apakah ini adalah penyebab utama dengan menjalankan ssh dengan opsi -t , yang memaksa alokasi pseudo-tty.
Solusi yang kurang diinginkan adalah membuat skrip wrapper yang mengeksekusi bip, dan memberikan izin root skrip ini . Jika menjalankan skrip ini di atas ssh yang seharusnya menghasilkan bunyi bip, Anda akan tahu bahwa masalahnya adalah tidak adanya terminal pengendali.