انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: 🇮🇷 در 24 شهریور 1400، 01:06 بظ
-
سلام
میخوام پرونده <usr/bin/<app/ فایرفاکس رو طوری ویرایش کنم که قبل از اجرای فایرفاکس، وای فای روشن بشه. دقیقا باید چه تغییراتی توی پرونده مذکور ایجاد کنم؟ فعلا محتویات پرونده به صورت زیر هست:
#!/bin/sh
FIREFOX="$(which firefox)"
[ -x "$FIREFOX.real" ] && exec "$FIREFOX.real" "$@"
exec firefox-esr "$@"
خط آخر رو به صورت زیر ویرایش کردم ولی کار نکرد:
exec nmcli radio wifi on && firefox-esr "$@"
-
با rfkill میتونید وایفای رو خاموش روشن کنید. برای دیدن دستگاههای بیسیم متصل به سیستم، اینجوری از rfkill استفاده کنید.
rfkill list all
برای اینکه یه دستگاه رو خاموش بشه، این دستور رو وارد کنید.
rfkill block <device-name>
بهجای <device-name> اسم دستگاه بیسیم موردنظر رو قرار. اسم دستگاه رو میتونید با دستور بالا که گذاشتم پیدا کنید.
ممکنه برای اجرا دستور بالا، به دسترسی روت نیاز داشته باشید، ولی اگه کاربری که این رو اجرا میکنه، توی گروه netdev باشه، دیگه لازم نیست که با دسترسی روت اجرا بشه.
برای اینکه یهکاربر رو به گروه netdev اضافه بشه، میتونید از دستور usermod استفاده کنید. اینجوری
sudo usermod -aG netdev <username>
بهجای <username> نامکاربری موردنظر رو قرار بدید. برای اینکه اینها درست اعمال بشه، کاربر باید یه بار از حسابش خارج، و دوباره وارد بشه.
ولی بهتره اون فایل رو ویرایش نکنید. میتونید اون فایل رو کپی کنید توی مسیر زیر
/usr/local/bin
و بعد تغییرات رو توی فایل کپی شده انجام بدید. چون مسیر /usr/local/bin/ معمولا زودتر از مسیر /usr/bin/ توی متغییر PATH تعریف شده، اون فایلی که کپی کردید اجرا میشه، نه فایل اصلی. هر وقت هم خواستید، میتونید پاکش کنید.
یا اگه برای یهکاربر خاص میخواهید اینکار رو انجام بدید، بازهم کار شبیه بالا هست ولی جایی که باید کپی کنید فرق داره. متغییر PATH اون کاربر رو هم باید تنظیم کنید.
اگه بازهم مشکل دارید، بپرسید.
-
اون فایل نباید تغییری بکنه. یک فایل دیگه ایجاد کنید و مثلا روی صفحهٔ اصلی یا هر جای دیگهای (که دسترسی ریشه نخواد) بذارید و بذارید اون فایل اینکارها رو براتون انجام بده.
-
با rfkill میتونید وایفای رو خاموش روشن کنید.
نه دستوری که گفتم به طور عادی کار میکنه. نیازی به دستور دیگه نیست. ولی توی اون فایل کار نمیکنه؛ مشکل اینه
ولی بهتره اون فایل رو ویرایش نکنید. میتونید اون فایل رو کپی کنید توی مسیر زیر
/usr/local/bin
و بعد تغییرات رو توی فایل کپی شده انجام بدید. چون مسیر /usr/local/bin/ معمولا زودتر از مسیر /usr/bin/ توی متغییر PATH تعریف شده، اون فایلی که کپی کردید اجرا میشه، نه فایل اصلی. هر وقت هم خواستید، میتونید پاکش کنید.
یا اگه برای یهکاربر خاص میخواهید اینکار رو انجام بدید، بازهم کار شبیه بالا هست ولی جایی که باید کپی کنید فرق داره. متغییر PATH اون کاربر رو هم باید تنظیم کنید.
اگه بازهم مشکل دارید، بپرسید.
درسته کاری که گفتید کار میکنه ولی با یه مشکل. الآن وای فای روشن میشه ولی در عوض فایرفاکس اجرا نمیشه. در هر از دو حالت زیر این اتفاق میافته:
cat /usr/local/bin/firefox
#!/bin/sh
FIREFOX="$(which firefox)"
[ -x "$FIREFOX.real" ] && exec "$FIREFOX.real" "$@"
exec nmcli radio wifi on "$@"
exec firefox-esr "$@"
#!/bin/sh
FIREFOX="$(which firefox)"
[ -x "$FIREFOX.real" ] && exec "$FIREFOX.real" "$@"
exec nmcli radio wifi on && firefox-esr "$@"
اون فایل نباید تغییری بکنه. یک فایل دیگه ایجاد کنید و مثلا روی صفحهٔ اصلی یا هر جای دیگهای (که دسترسی ریشه نخواد) بذارید و بذارید اون فایل اینکارها رو براتون انجام بده.
روش بالا (ساخت فایل در /usr/local/bin) خوب نیست؟
-
مشکل با exec هست. اون exec اول nmcli رو بردارید.
یعنی اینطوری بنویسید
nmcli radio wifi on && exec firefox-esr "$@"
یا اینطوری
nmcli radio wifi on
exec firefox-esr "$@"