বাশ স্ক্রিপ্টে মাউন্ট করা পার্টিশন দেখানো নটিলাস প্রতিরোধ করুন


8

আমার বাশ স্ক্রিপ্টে আমি পার্টিশনগুলি মাউন্ট করি, তাদের পরীক্ষা করে দেখি, তাদের কাছে ফাইলগুলি অনুলিপি করি এবং আনমাউন্ট করি। স্ক্রিপ্টটি যখন পার্টিশনটি মাউন্ট করে, নটিটিলাস একটি উইন্ডো দিয়ে পপ আপ করে পার্টিশনটি দেখায় এবং চুরি ফোকাস দেখায়। এটি এমন কিছু যা আমি এড়াতে চাই।

দ্রষ্টব্য: আমি জানি যে আমি সিস্টেমের সেটিংস, বিশদ, অপসারণযোগ্য মিডিয়াতে Never prompt or start programs on media insertionএটির আচরণটি পরিবর্তন করতে পারি, তবে আমি আচরণটি পরিবর্তন করতে চাই না যেমন একটি ইউএসবি স্টিকটি প্লাগ ইন করা থাকলে আমি কেবল এটি আমার ব্যাশ স্ক্রিপ্টে আটকাতে চাই want । যেহেতু এই স্ক্রিপ্টটি অন্য ব্যবহারকারীর কম্পিউটারে চলছে আমি এই সেটিংগুলি (স্ক্রিপ্টে) সংশোধন করতে পারি না কারণ এটি অস্বাভাবিকভাবে বন্ধ হয়ে গেলে এটি পরিবর্তিত সেটিংসটি জায়গায় রেখে দেবে (আমি এটিও বিশ্বাস করি না যে এটি করা দরকার)।

আসলে এই অটো ডিসপ্লেটি সামঞ্জস্যপূর্ণ বলে মনে হচ্ছে না। যদি আমি টার্মিনাল থেকে ঠিক একই কমান্ডটি করি তবে নটিলাস প্রদর্শন করবে না এবং আমি জানি আমার স্ক্রিপ্টে অন্যান্য মাউন্ট রয়েছে যা প্রদর্শিত হয় না। সুতরাং এটি কি কারণ হতে পারে? কোডটির একটি উদাহরণ এখানে দেওয়া হয়েছে (উভয়ই পৃথক নটিলাস উইন্ডোগুলিকে পপ করতে পারে):

mount $dev $target
mkdir -p $target/home
mount $homedev $target/home

আমি যে প্রক্রিয়াটির মাধ্যমে মাউন্টটি নটিটিলাসকে ইঙ্গিত দেয় এবং কেন এটি ঘটছে তা বুঝতে আগ্রহী (যখন আমি টার্মিনাল থেকে পার্টিশনটি মাউন্ট করি না তখন)। এবং এটি থেকে রোধ করার সর্বোত্তম উপায় কী।

আমি এই আচরণটি 11.10 প্রকাশের সময় থেকে শুরু হয়েছে (যদি আমি সঠিকভাবে স্মরণ করি) noticed আমি বর্তমানে 12.04 চালাচ্ছি, তবে স্ক্রিপ্টটিতে সমস্ত সমর্থিত রিলিজের কাজ করা উচিত। আমি বিশ্বাস করি না যে সমাধানটিতে সিস্টেম সেটিংস সংশোধন করা জড়িত থাকা উচিত (এটি প্রকাশের মধ্যে পৃথক হতে পারে)। উদাহরণস্বরূপ, আপনি যদি পার্টিশনগুলি মাউন্ট করার মতো অন্যান্য জিনিসগুলি (ওএস-প্রবারের মতো) দিকে লক্ষ্য করেন তবে বিভিন্ন পার্টিশন মাউন্ট করার সময় কোনও নটিলাস উইন্ডো পপ আপ হয় না।

স্ক্রিপ্ট এখানে পাওয়া যাবে । এবং এখানে অংশটি যেখানে নটিলাস পপ করেছে। এইটাও আমার কাছে ভাল পপ মনে এখানে , কিন্তু আমি প্রথম লিঙ্কে আমার পরীক্ষাকার্যের মনোযোগ করছি। এই যেখানে এটি পপ হয় না, m অন্যান্য মাউন্টগুলির পূর্বে বলা হয় - নোট করুন আমি প্রথমগুলিকে পুনর্লিখন করেছি - কেবলমাত্র পড়ুন এবং কেবল যদি একটি বিবৃতিতে এবং এটি কোনও তাত্পর্য রাখে না।

আদর্শভাবে উত্তরটি ব্যাখ্যা করবে যে এটি কেন ঘটছে এবং কীভাবে এটি প্রতিরোধ করা যায়, অন্য কথায়, ব্যাখ্যা করুন যে mountটার্মিনাল থেকে জারি করা শিরোনামের সাথে ইন-স্ক্রিপ্টটি কেন অন্যরকম আচরণ করা হয়। এটি যদি পুরোপুরি ব্যাখ্যাযোগ্য সমাধান এবং ব্যবহারিক সমস্ত ডেস্কটপ পরিবেশ (উবুন্টু, কুবুন্টু, এক্সুয়ান্টু, লুবুন্টু ইত্যাদি) সমর্থন করে তবে একটি ভাল কাজের ভিত্তিও গ্রহণ করা হবে - আমি এটি যাচাই করার জন্য পরীক্ষায় কোনও তাত্পর্যপূর্ণ বৃদ্ধি এড়াতে চাই।

আগাম ধন্যবাদ

============

পাপাশোর লিঙ্ক অনুযায়ী সমাধান :

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
}

এটি পছন্দসই ফলাফল অর্জন করে তবে স্লেজহ্যামার পদ্ধতির মতো অনুভব করে। আমি বিশ্বাস করি যে সম্ভবত উদেভে একটি সূক্ষ্ম-সুরায়ন রয়েছে যা পার্টিশনটি নটিলাস (এবং অন্যান্য ফাইল ব্রাউজারগুলিতে) মাউন্ট করার সময় পপিং ছাড়াই এখনও দেখাতে দেবে। যাইহোক, কেউ যদি এটি চেষ্টা করতে চান, নিম্নলিখিত স্ক্রিপ্টটি নটিলাসের পপ-আপের প্রভাবটি প্রদর্শন করবে:

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

আমি খেলতে যাচ্ছি udevএবং আমি একটি বাগও দায়ের করেছি , যেহেতু এটি এমন একটি পার্টিশনের পক্ষে কোনও অর্থ বোধ করে না যা মাউন্টের উপরে USBোকানো ইউএসবি / মিডিয়া কার্ডের মতো কাজ করতে প্রবেশ করা হয়নি। এছাড়াও এটি udevadm triggerকোনও সস্তা অপারেশন নয় যা অস্থায়ীভাবে সবকিছু হিমায়িত করতে (কমপক্ষে 12.04 এ) প্রদর্শিত হবে।

সুতরাং, সংক্ষেপে, আমার একটি কার্যক্ষম সমাধান রয়েছে (যারা সাহায্য করেছেন তাদের সবাইকে ধন্যবাদ), যা আমি প্রয়োগ করতে পারি বা নাও করতে পারি (এখনও নিশ্চিত নয়); তবে আমি অন্য কিছু খুঁজতে থাকব। ধন্যবাদ


অন্যদের উত্তর দেওয়ার জন্য, আপনি কি আপনার উবুন্টু সংস্করণ যুক্ত করতে পারেন? যেমন 9.04, 10.10, 12.04। একের পর এক অন্যদিকে মোটামুটি বিবর্তন ছিল।
পল

ভাল যুক্তি. আমি যোগ করতে আমার প্রশ্ন সম্পাদনা করব।
বিসিবিসি

যদি আপনি -i মাউন্ট করেন তবে এটি কি নটিলাসটিকে পপিং করা থেকে বিরত রাখবে? স্ক্রিনের নীচে সামান্য কথোপকথনটি পপিং করা থেকে জিনোম-শেল রাখার জন্য এটি আমার পক্ষে কাজ করে। জিনোম-শেল ব্যবহার করে এটি 12.04 উবুন্টুতে পরীক্ষা করা হয়েছিল।
গ্যারি

এটা আমার জন্য কোন পার্থক্য করে না।
বিসিবিসি

<p> _ যদি আমি টার্মিনাল থেকে ঠিক একই কমান্ডটি করি তবে নটিলাস দেখায় না_ - আপনি কীভাবে আপনার স্ক্রিপ্টটি চালু করবেন? </p> <p> এবং আমি জানি আমার স্ক্রিপ্টে আরও কিছু মাউন্ট রয়েছে যা দেখায় না - এই মাউন্টগুলির মধ্যে কী পার্থক্য? </ p>
zuba

উত্তর:


3

এই পরামর্শ চেষ্টা করুন: http://www.worldofnubraft.com/969/hide-your-disks-or-partitions-from-nautilus/

আমি মোটামুটি নিশ্চিত যে এটি উদেব সংকেত এবং প্রসেসিংয়ের সাথে করা উচিত।


3
আপনি কি লিঙ্কটির বিষয়বস্তু সংক্ষিপ্তভাবে এখানে পোস্ট করতে পারেন? কেবল একটি লিঙ্ক সহ একটি উত্তর এইউ সম্প্রদায়টিতে খুব স্বাগত নয়।
মহেশ

এইটা কাজ করে. এই মুহুর্তে উত্তরটি স্বীকার করার জন্য খুব কম বিশদ রয়েছে। আমি ম্যানুয়ালি নিশ্চিত করেছি যে এটি ফাইল তৈরি এবং কল করার জন্য কাজ করে udevadm trigger। এটি স্ক্রিপ্টে কাজ করে তা নিশ্চিত করতে চাই। আপনি যদি এখানে আরও যুক্ত না করেন তবে আমি প্রশ্নের বিবরণ পোস্ট করব।
বিসিবিসি

লিঙ্কটি ইতিমধ্যে পরিষ্কারভাবে কী রেখেছিল তা আমি আবার সংক্ষেপে বলতে চাইনি। মূলত, এর জন্য /etc/udev/rules.d/ এ একটি বিধি যুক্ত করা দরকার যা উদেবকে নির্দিষ্ট ডিভাইসগুলি প্রক্রিয়া না করতে বলে - প্রতিটি ডিভাইস তাদের নিজস্ব লাইন উল্লেখ করে: KERNEL == "sda1 ″, ENV {UDISKS_PRESENTATION_HIDE” = "1 "। এটি করার ফলে কোনও সিস্টেম বা কার্নেল আচরণ পরিবর্তন করা যায় না। এটি কেবল UDEV কে ডিস্কের উপস্থাপনাটি লুকানোর জন্য বলে। স্পষ্টতই এই আচরণের জন্য নটিলাস ইউদেব নিয়ম প্রক্রিয়াকরণের উপর নির্ভর করে।
পাপাশৌ

1

আপনার স্ক্রিপ্ট মোড়ানো চেষ্টা করুন:

#!/bin/bash
#

# disable nautilus automount
#
gconftool --type Boolean --set /apps/nautilus/preferences/media_automount  false

# put your script here  
#
...

# enable back nautilus automount
# 
gconftool --type Boolean --set /apps/nautilus/preferences/media_automount  true

পরীক্ষা করা হয়নি কারণ আমি 10.04 এ আছি

হালনাগাদ:

#!/bin/bash
#

# disable nautilus automount
#
gconftool --type Boolean --set /apps/nautilus/preferences/media_automount  false

# put CALLING your script here to survive its crashes
#
/bin/bash -c "/whenever/it/is/placed/script.sh"

# enable back nautilus automount
# 
gconftool --type Boolean --set /apps/nautilus/preferences/media_automount  true

পরামর্শের জন্য ধন্যবাদ ... আমি সেটিংস সংশোধন করতে চাই না কারণ এটি অবিলম্বে কার্যকর হবে তা আমি নিশ্চিত নই, প্রতিটি রিলিজের জন্য এটির জন্য আলাদা কোডের প্রয়োজন হয়, এটি অনুপযুক্ত এবং স্ক্রিপ্টটি বাতিল করা হলে এটি ব্যবহারকারীকে ছেড়ে যায় অনাকাঙ্ক্ষিত অবস্থায় - আমি এটিও বিশ্বাস করি না যে এটি প্রয়োজনীয় হওয়া উচিত। আমি যে প্রক্রিয়াটির পরে চলেছি তা হ'ল নটিলাসকে মাউন্ট সম্পর্কে অবহিত করা এবং এটি কীভাবে বাইপাস করা যায় is যেমন উদেব? dbus,? আর যে সাজানোর.
বিসিবিসি

+ আমি সেটিংস সংশোধন করতে চাই না কারণ আমি নিশ্চিত না যে এটি অবিলম্বে কার্যকর হবে - এই প্রশ্নটি চেক আউট করা (যথেষ্ট সহজ)। + + প্রতিটি মুক্তির জন্য বিভিন্ন কোড প্রয়োজন - এটা হতে পারে প্রয়োজন হয় বা নাও হতে পারে 50 | 50 যদি আমি রাস্তায় একটু একটি dyno পূরণ করতে পারে)) + + এটা অসুন্দর হয় - কি বিকল্প তুলনায়?
জুবা

+ যদি স্ক্রিপ্টটি বাতিল করা হয় তবে এটি ব্যবহারকারীকে অনাকাঙ্ক্ষিত অবস্থায় ফেলে রাখে - অনেকগুলি প্যাকেজ (প্রবণতা উদাহরণস্বরূপ) বাতিল হয়ে গেলে। পার্শ্ব প্রতিক্রিয়া এড়াতে পন্থা আছে। উদাহরণস্বরূপ, আপনি স্ক্রিপ্টটি চালু আছে কিনা এবং সেটিংসটি ফিরে না পরিবর্তন করতে প্রতি 1 মিনিট যাচাই করতে ক্রোন চার্জ করতে পারেন। অথবা আপনি অন্যটি থেকে স্ক্রিপ্ট চালাতে পারেন যা সেটিংটি নিয়ন্ত্রণ করে।
জুবা

আমার বক্তব্যটি হ'ল ডেস্কটপ নির্দিষ্ট সেটিংস পরিবর্তন করার প্রয়োজন হবে না। আমার আরও যোগ করা উচিত ছিল যে এই স্ক্রিপ্টটি উবুন্টু / এক্সবুন্টু / কুবুন্টু / লুবুন্টু ইত্যাদিতে চলতে পারে তাই এটি একটি উচ্চ স্তরের জটিলতা এবং ঝুঁকি যুক্ত করে।
বিসিবিসি

ইউডিস্কের সাথে পার্টিশনটিকে কালো তালিকাভুক্ত করার বিকল্প হিসাবে (প্যাপাশাস লিঙ্কটি দেখুন) সুডো প্রয়োজন এবং এটি মেশিনগুলির মধ্যে বহনযোগ্য নয়, সুতরাং এটি আরও জটিল এবং ঝুঁকিপূর্ণ হবে।
ডিম

1

আপনি নতুন উদেব নিয়ম যুক্ত করে ফ্ল্যাশ ড্রাইভ অটোমোটিংকে আটকাতে পারবেন। এই নিয়মে আপনি এর বিক্রেতা, ক্রমিক সংখ্যা, অন্যান্য বৈশিষ্ট্যগুলি দ্বারা কোনও ফ্ল্যাশ ড্রাইভ নির্দিষ্ট করতে পারেন। এর আউটপুটে এটিটিআরএস {} লাইনগুলি দেখুন :

udevadm info -a --name=sdb1

সেই স্ক্রিপ্টটি আপনার /etc/udev/rules.d ফোল্ডারে বিশেষ ফাইলের নামের সাথে রাখা উচিত , উদাহরণস্বরূপ 81-usb-wubi-اقدام.rules

নিয়ম মত দেখতে পারে

ACTION=="add", KERNEL=="sdb?", SUBSYSTEMS=="usb", ATTRS{serial}=="001CC07CEE5EFB91C91B235C", ENV{UDISKS_PRESENTATION_HIDE}="1", ENV{UDISKS_PRESENTATION_NOPOLICY}="1"

আরো দেখুন:


এটি দেখে মনে হচ্ছে এটি সম্ভাব্য কাজ করা উচিত - এটি পর্যালোচনা করার জন্য আমার পরীক্ষা করা এবং পরীক্ষা করা দরকার এবং আজকের পরে অবধি কোনও সুযোগ পাবে না (তখন প্রতিক্রিয়া জানাব)। আদর্শভাবে উত্তরটি ব্যাখ্যা করবে যে এটি কেন ঘটছে ( mountটার্মিনাল থেকে চালানোর তুলনায় ) তবে যদি আমি ভাল কাজের সুযোগ পাই তবে আমি তাও মেনে নেব।
বিসিবিসি

এই এক
RobotHumans

0

নিরীক্ষিত .... শুধু একটি কুঁচক

নটিলাস ব্যবহারকারীর জন্য অ্যাক্সেসযোগ্য একটি গাছেতে ফাইল সিস্টেম মাউন্ট করুন, যেমন / রুট বা / বাড়ি / কারও কারও মালিকানাধীন এবং অন্য কারও দ্বারা সুরক্ষিত একটি / টিএমপি সাব-ডিরেক্টরি ডিরেক্টরিতে

মনে রাখবেন একই হার্ডওয়্যার ডিভাইসটিকে দুটি মাউন্টপয়েন্টে মাউন্ট করা এবং উভয় থেকে এটি সংশোধন করা খারাপ ধারণা হতে পারে।

(12.04beta) উবুন্টু-> সিস্টেম সেটিংস-> বিশদ-> অপসারণযোগ্য মিডিয়াতে কিছু মানব কনফিগারেশন সম্ভব। কিছু অপশন "কিছুই না করার" জন্য সেট করা যেতে পারে এবং এটি পপআপ এড়াতে পারে।

Https://help.ubuntu.com/commune/Mount/USB- তে ডকুমেন্টেশন 9.10 এর জন্য সহায়ক হতে পারে তবে 12.04 দিয়ে কাজ করেনি। তারা উল্লেখ করেছেন যে gconf- সম্পাদকের কীগুলি আর ব্যবহার করা হয় না।


এটি / টিএমপি (এবং অন্য কোথাও) এর অধীনে একটি ডিরেক্টরিতে মাউন্ট করা হয়েছে।
বিসিবিসি

তবে লগ ইন করা ব্যবহারকারী এখনও / টেম্পে অ্যাক্সেস করতে পারবেন। পরামর্শটি হ'ল লগ ইন থাকা ব্যবহারকারীরা যে ডিরেক্টরিটি অ্যাক্সেস করতে পারবেন না এমন কোনও ডিরেক্টরি ব্যবহার করবেন।
পল

আমি chmod 700দির উপর ব্যবহার করেছি ... আশাব্যঞ্জক লাগলাম এবং তারপরে একটি বার্তা উইন্ডোটি পপ আপ করলাম (উইন্ডো শিরোনামহীন): "10 জিবি ফাইল
সিস্টেমের

আকর্ষনীয়। এটি নিশ্চিতভাবে চেষ্টা করে সম্ভবত আমি এই পরে খেলতে সময় হবে।
পল

0

পতাকা এবং পতাকা mountদিয়ে চেষ্টা করুন ।-n-i


আমি এটি চেষ্টা করেছি - আমি যতটা মাউন্ট অপশন করতে পারি তা পেরেছি। ট্রিগারটি অন্য কোথাও ঘটছে।
বিসিবিসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.