আমি কোনও ইউএসবি ডিভাইস প্লাগ বা প্লাগ লাগানোর পরে কোনও স্ক্রিপ্ট অটোরুন


22

আমি কোনও ইউএসবি ডিভাইস মাউন্ট / প্লাগইন বা আনমাউন্ট / আনপ্লাগ করার পরে স্বয়ংক্রিয়ভাবে কোনও স্ক্রিপ্ট চালানোর জন্য আমি কী করতে পারি?


2
@ এক্সএক্সএক্সএক্সএক্সএক্সএক্স: যতক্ষণ না
কটলফিশের

2
সম্ভাব্য সদৃশ: Askubuntu.com/questions/25071/…
গ্লুটানিমেট

@ গ্লুটানীমেট: এই প্রশ্নটি একটি নির্দিষ্ট ইউএসবি ফ্ল্যাশ ড্রাইভ সম্পর্কে, তবে আমি একটি ইউএসবি ডিভাইস সম্পর্কে জিজ্ঞাসা করি, সাধারণভাবে
রাদু রেডানু

@ গ্লুটানীমেট: বলুন যে এই প্রশ্নের উত্তরগুলি সহায়ক, যাইহোক আমি কোনও ইউএসবি ডিভাইস প্লাগ লাগানোর পরে কীভাবে স্বয়ংক্রিয়ভাবে কোনও স্ক্রিপ্ট চালানো যায় সে সম্পর্কে উত্তর দেয় না ।
রাদু রেডানু

1
"বলুন যে এই প্রশ্নের উত্তরগুলি সহায়ক, যাইহোক আমি কোনও ইউএসবি ডিভাইস আনপ্লাগ করার পরে কীভাবে স্বয়ংক্রিয়ভাবে কোনও স্ক্রিপ্ট চালানো যায় তার জবাব দেয় না" আমি অনুমান করছি যে আপনি যদি "ACTION = 'যুক্ত'" "এ্যাকশন =" এ পরিবর্তন করেন তবে 'অপসারণ' ", এটি শুরু করার জন্য ভাল জায়গা হবে।
blujay

উত্তর:


17

ধন্যবাদ MinimusHeximus করুন এবং নিজ নিজ অবদানকারী থ্রেড তিনি আমার একই প্রশ্ন তার মন্তব্যে উল্লেখ, আমি মনে করি আমি এখন আপনি অনুসরণ উত্তর দিতে পারে।

আপনার কেবল এই জাতীয় USB ডিভাইসের জন্য 5 (পাঁচ) ফাইলের প্রয়োজন হবে, কেবল স্বতন্ত্র মানগুলি পূরণ করা <fortheseparts>:

/etc/udev/rules.d/00-usb-<yourdevice>.rules

ACTION=="add", ATTRS{idVendor}=="<yourvendorid>", ATTRS{idProduct}=="<yourproductid>", ENV{XAUTHORITY}="/home/<user>/.Xauthority", ENV{DISPLAY}=":0", OWNER="<user>", RUN+="/usr/local/bin/usb-<yourdevice>-in_udev"    
ACTION=="remove", ATTRS{idVendor}=="<yourvendorid>", ATTRS{idProduct}=="<yourproductid>", ENV{XAUTHORITY}="/home/<user>/.Xauthority", ENV{DISPLAY}=":0", OWNER="<user>", RUN+="/usr/local/bin/usb-<yourdevice>-out_udev"

/usr/local/bin/usb-<yourdevice>-in_udev

#!/bin/bash
/usr/local/bin/usb-<yourdevice>-in &

/usr/local/bin/usb-<yourdevice>-in

#!/bin/bash
sleep 1
<yourbashscriptcode>

/usr/local/bin/usb-<yourdevice>-out_udev

#!/bin/bash
/usr/local/bin/usb-<yourdevice>-out &

/usr/local/bin/usb-<yourdevice>-out

#!/bin/bash
sleep 1
<yourbashscriptcode>

নোট:

  1. আপনি মান ক্যাপচার করতে পারেন <yourvendorid>এবং <yourproductid>কমান্ড লিখে lsusbটার্মিনাল মধ্যে - যখন আপনার USB ডিভাইস প্লাগ ইন করা আছে - যা, আপনার সমস্ত USB ডিভাইসের বর্তমানে উপলব্ধ তালিকা প্রস্তুত করা যাবে মত Bus 003 Device 002: ID 8087:07da Intel Corp., যেখানে 8087 হয় বিক্রেতা ID এবং 07da হয় ProductID
  2. আর <yourdevice>কোনো হতে পারে নির্বিচারে আপনি যে নামটি আপনার USB ডিভাইসের জন্য চয়ন করতে পারেন, উদাহরণস্বরূপ, আমি জেনেরিক নাম "ব্যবহার করতে কীবোর্ড যখন আমার USB কীবোর্ডের যা বিভিন্ন কীবোর্ড লেআউট যখনই তাতে প্লাগ করা আবেদন প্রয়োজনীয় এমন ফাইল তৈরি"।
  3. কিছু পরিস্থিতিতে, ACTION=="remove"ইউদেব নিয়ম ফাইলে লাইনটি ব্যবহার করা প্রয়োজন হতে পারে না , এবং সেইজন্য সংশ্লিষ্ট 2 (দুটি) outফাইলগুলি যখন আপনার কিছু করার দরকার নেই তখন (উদাহরণস্বরূপ ডিভাইসটি পরিবর্তন করার সময় উল্টো পরিবর্তন করা উচিত) প্লাগ ইন করে) ডিভাইসটি প্লাগ আউট হওয়ার পরে।

এটি আমার নবজাতকের দৃষ্টিকোণ থেকে ভুল দেখাচ্ছে। এই ধারাগুলি একই লাইনে থাকা উচিত নয়?
এনএফজি

1
এটি কাজ করে: অ্যাকশন == "যোগ করুন", এটিটিআরএস {আইডিভেন্ডার} == "...", এটিটিআরএস {আইডিপ্রডাক্ট} == "...", ENV {XAUTHORITY} = "/ হোম / <ব্যবহারকারীর /.অক্ষমতা" , ENV {DISPLAY} = ": 0", RUN + = "<script>"
nafg

@ এনএফজি: আমার নবজাতকের দৃষ্টিকোণ থেকে, যদি আপনি সমস্তগুলিকে এক লাইনে (বিভাজক হিসাবে কমা ব্যবহার করে) উদেব বিধি ফাইলগুলিতে রাখেন তবে কোনও পার্থক্য করা উচিত নয়, তবে আমি দেখতে পাচ্ছি যে আপনি ইউদেব বিধিগুলিতে XAUTHORITY এবং DISPLAY পরামিতি যুক্ত করেছেন, যা আপনার বা অন্য কারও জন্য কাজ করতে পারে, সেই ক্ষেত্রে আমি ভাবছি যে নীচের দুটি স্ক্রিপ্ট ফাইলগুলিতে তাদের আর প্রয়োজন নেই।
সাদি

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

@ এনএফজি: আপনার মূল্যবান অবদানের জন্য ধন্যবাদ। আমি এই পরিবেশগুলিকে উদেব নিয়মে সরিয়ে নিয়েছি এবং এটি আমার পক্ষেও কাজ করে। এছাড়াও, আমি আমার / হোম ফোল্ডারটি পৃথক পৃথক বিভাগে স্থানান্তরিত করার পরে সমস্যার মুখোমুখি হতে শুরু করার সাথে সাথে স্ক্রিপ্টগুলি / usr / স্থানীয় / বিনে স্থানান্তরিত করেছি (সম্ভবত এটি আগে মাউন্ট করা হয়নি)। মনে হয় উদেব নিয়মগুলিতে লাইন ব্রেকগুলি ব্যবহার করা আমার সিস্টেমে কমপক্ষে কোনও সমস্যা তৈরি করে না (উবুন্টু ১৩.০৪ 64৪ বিট) এবং আমি এটি পাঠযোগ্যতার জন্য পছন্দ করেছি।
সাদি

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