আমি কোনও অ্যাপ্লিকেশন খোলার সময় কী ফাইলগুলি কার্যকর করা হয় তা আমি কীভাবে জানতে পারি?


12

আমি কিছু অ্যাপ্লিকেশন খুললে পর্দার আড়ালে কী ঘটে তা জানতে চাই। উদাহরণস্বরূপ, আমি যখন ফায়ারফক্স খুলি তখন আমি জানতে চাই যে কোন ফাইলগুলি পড়ে এবং কোনটি কার্যকর করা হয়। এই কাজ করতে কোন উপায় আছে কি. এমনকি টার্মিনাল থেকে ফায়ারফক্স খোলার কোনও তথ্য দেখায় না। ওএস: উবুন্টু 12.04

উত্তর:


21

ব্যবহার করুন strace!

উদাহরণ: একটি অধিবেশন চলাকালীন ফায়ারফক্সের দ্বারা খোলা সমস্ত ফাইলের তালিকা করুন:

strace -f firefox 2>&1 | grep 'open('

আপনি যদি ফায়ারফক্সের দ্বিতীয় উদাহরণটি খুলেন তবে এর মতো কিছুতে ফলাফল: http://pastebin.com/iRqxgiWN ('-f' বিকল্পটি কেবল স্ট্রেস অনুসরণ প্রক্রিয়া কাঁটাচামচ করে তোলে makes)

উদাহরণ 2: ফায়ারফক্স দ্বারা কার্যকর সমস্ত প্রক্রিয়া তালিকাবদ্ধ করুন:

strace -f firefox 2>&1 | grep -P 'exec[vlpe]*\('

ইউটিউব দেখার সময় এরকম কিছুতে ফলাফল:

[pid 25020] execve("/usr/lib/firefox/plugin-container", ["/usr/lib/firefox/plugin-containe"..., "/usr/lib/adobe-flashplugin/libfl"..., "-greomni", "/usr/lib/firefox/omni.ja", "-appomni", "/usr/lib/firefox/browser/omni.ja", "-appdir", "/usr/lib/firefox/browser", "15198", "false", "plugin"], [/* 57 vars */]) = 0
[pid 25024] execve("/bin/sh", ["sh", "-c", "ps x | grep netscape"], [/* 57 vars */]) = 0
[pid 25025] execve("/bin/ps", ["ps", "x"], [/* 57 vars */] <unfinished ...>
[pid 25026] execve("/bin/grep", ["grep", "netscape"], [/* 57 vars */]) = 0

আপনি অন্যান্য অনেকগুলি সিস্টেম কল সহ এটি করতে পারেন ...

open()আপনার grepঅনুসন্ধানের পরামিতিগুলির সাথে মেলে আপনি ফাইলটি কোন মোডে খোলা হয়েছে তা জানতে পারবেন:

| grep -P 'O_RDONLY|O_RDWR'ফিল্ড রিড অ্যাক্সেস বা | grep -P 'O_WRONLY|O_RDWR'আপনার কমান্ডে লেখার অ্যাক্সেসের জন্য কেবলমাত্র (অগ্রণী পাইপ চরিত্রটি গুরুত্বপূর্ণ!) যুক্ত করুন ...

সম্পাদনা :

মন্তব্যে যেমন উল্লেখ করা হয়েছিল আপনি strace -fe open firefoxফায়ারফক্স দ্বারা খোলার সমস্ত ফাইলের তালিকা করতেও ব্যবহার করতে পারেন । আপনি ফায়ারফক্স দ্বারা সম্পন্ন সমস্ত ফাইল অপারেশন strace -fe trace=file firefoxতালিকাভুক্ত করতে পারেন যা একটি আর্গুমেন্ট (খোলা, স্ট্যাট, lstat, chmod, অ্যাক্সেস, ...) হিসাবে একটি ফাইল পাথ আছে।

আরও অনেক পাওয়া যায়! পরীক্ষা করে দেখুন strace, (1) ম্যানুয়াল পৃষ্ঠা।


1
আমি বরং অবাক হয়েছি যে ফায়ারফক্স প্রক্রিয়া তালিকা থেকে গ্রেট "নেটস্কেপ" এ একটি শেল চালাবে।
মাইকেল 17

1
স্ট্রেসের মধ্যে অন্তর্নির্মিত ফিল্টারিং ক্ষমতা রয়েছে। উদাহরণস্বরূপ strace -e openকেবলমাত্র কল করার চেষ্টা করুন open()
জন কুগেলম্যান

@ মিশেল এটি একটি শেল তৈরি করে কারণ এটি একটি পাইপ ("|") ব্যবহার করে যা শেল সিনট্যাক্স। আপনি কোড থেকে ম্যানুয়ালি একই পাইপ সেট আপ করতে পারেন তবে শেলটি এটি করা অনেক সহজ - যতক্ষণ আপনি জানেন যে ব্যবহারকারীর কাছ থেকে শেল এ্যাসকেট কোডগুলি পাস করার কোনও সম্ভাবনা নেই, যা সুরক্ষার দুর্বলতার দিকে নিয়ে যেতে পারে।
অ্যালিস্টার বৈক্সন

1

আসলে ভারবোজ মোড নামে মোড আছে তবে আমি নিশ্চিত না যে ফায়ারফক্সের এমন বিকল্প রয়েছে ome তবে কোনও সমস্যা নেই, প্রতিটি অ্যাপ্লিকেশনটিতে এর লগ থাকবে so সুতরাং আপনি এর লগ ডেটা পরীক্ষা করে অ্যাপ্লিকেশন কার্যকলাপটি পরীক্ষা করতে পারেন check

আপনি যদি ফায়ারফক্সের জন্য লগ সক্ষম করতে চান তবে আপনি এটি পরীক্ষা করতে পারেন

http://bertrandbenoit.blogspot.in/2011/09/activate-logging-for-mozilla.html

উবুন্টুতে প্রতিটি অ্যাপ্লিকেশন ক্রিয়াকলাপ আপনি তাদের নির্দিষ্ট লগ দিয়ে পরীক্ষা করতে পারেন all সমস্ত অ্যাপ্লিকেশন /var/logডিরেক্টরিতে লগ করবে ।

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