Di skrip bash saya, saya memasang partisi, memeriksanya, menyalin file, dan meng-unmount. Ketika skrip mount partisi, Nautilus muncul dengan Window yang menunjukkan partisi dan mencuri fokus. Ini adalah sesuatu yang ingin saya hindari.
Catatan: Saya tahu saya bisa mengubah perilaku ini di Pengaturan sistem, Detail, Media yang dapat dilepas Never prompt or start programs on media insertion,, tetapi saya tidak ingin mengubah perilaku, misalnya jika stik USB dicolokkan, saya hanya ingin mencegahnya di skrip bash saya . Karena skrip ini berjalan pada komputer pengguna lain, saya tidak dapat mengubah pengaturan ini (dalam skrip) karena jika diakhiri secara tidak normal akan meninggalkan pengaturan yang diubah di tempat (saya juga tidak percaya itu harus dilakukan untuk melakukan ini).
Sebenarnya tampilan otomatis ini sepertinya tidak konsisten. Jika saya melakukan perintah yang sama persis dari terminal, Nautilus tidak muncul, dan saya tahu ada mount lain di skrip saya yang tidak muncul. Jadi apa yang menyebabkan ini? Berikut adalah contoh kode (keduanya menyebabkan jendela nautilus terpisah muncul):
mount $dev $target
mkdir -p $target/home
mount $homedev $target/home
Saya tertarik untuk memahami proses dimana sinyal mount Nautilus dan mengapa ini terjadi (ketika tidak jika saya me-mount partisi dari terminal). Dan apa cara terbaik untuk mencegah hal ini terjadi.
Saya perhatikan perilaku ini dimulai pada rilis 11.10 (jika saya ingat dengan benar). Saya sedang menjalankan 12,04, tetapi skrip harus bekerja pada semua rilis yang didukung. Saya tidak percaya solusinya harus melibatkan memodifikasi pengaturan sistem (yang mungkin berbeda antara rilis). Misalnya, jika Anda melihat hal-hal lain yang me-mount partisi (seperti os-prober), tidak ada jendela nautilus yang muncul ketika me-mount partisi yang berbeda.
Skrip dapat ditemukan di sini . Dan inilah bagian di mana Nautilus muncul. Saya pikir ini juga muncul di sini , tetapi saya telah memfokuskan pengujian saya pada tautan pertama. Ini adalah di mana ia tidak muncul, yang disebut sebelum mereka tunggangan lain - catatan saya sudah menulis ulang yang pertama sebagai --read-satunya dan dalam sebuah pernyataan jika dan tidak ada bedanya.
Idealnya, jawaban akan menjelaskan mengapa hal ini terjadi dan bagaimana cara mencegahnya, dengan kata lain, menjelaskan mengapa skrip mountdiperlakukan secara berbeda dengan yang dikeluarkan dari terminal. Solusi yang baik juga akan diterima jika itu adalah solusi yang sepenuhnya dijelaskan dan praktis yang dapat mendukung semua lingkungan desktop (ubuntu, kubuntu, xubuntu, lubuntu dll) - Saya juga ingin menghindari peningkatan eksponensial dalam pengujian untuk memverifikasinya.
Terima kasih sebelumnya
============
Solusi sesuai tautan papashou :
add_udev_rules ()
{
for i in "$dev" "$homedev" "$bootdev" "$usrdev"; do
if [ -n "$i" ]; then
block=${i#/dev/}
echo "KERNEL==\"""$block""\",ENV{UDISKS_PRESENTATION_HIDE}=\"1\"" >> "$wubi_move_dir"/wubi_move.rules
fi
done
cp "$wubi_move_dir"/wubi_move.rules /etc/udev/rules.d/wubi_move.rules
udevadm trigger > /dev/null 2>&1
}
remove_udev_rules ()
{
rm /etc/udev/rules.d/wubi_move.rules
rm "$wubi_move_dir"/wubi_move.rules
udevadm trigger > /dev/null 2>&1
}
Ini mencapai hasil yang diinginkan, tetapi terasa seperti pendekatan palu godam. Saya percaya mungkin ada fine-tuning di udev yang akan memungkinkan partisi untuk tetap ditampilkan di Nautilus (dan browser file lainnya) tanpa muncul ketika sudah terpasang. Ngomong-ngomong jika ada yang ingin mencoba ini, skrip berikut akan menunjukkan efek pop-up nautilus:
mkdir -p /tmp/testmount
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
rmdir /tmp/testmount
Saya akan terus bermain udevdan saya juga telah mengajukan bug , karena ini tidak masuk akal untuk partisi yang tidak dimasukkan untuk bertindak seperti USB / kartu media yang dimasukkan saat mount. Juga udevadm triggerbukan operasi murah yang muncul (setidaknya 12,04) untuk sementara membekukan segalanya.
Jadi, secara ringkas, saya memiliki solusi yang bisa diterapkan (terima kasih kepada semua orang yang telah membantu), yang mungkin atau mungkin tidak saya terapkan (belum yakin); tapi aku akan terus mencari yang lain. Terima kasih