ক্রোন লিপি থেকে জেনিটি কল কিভাবে?


8

উদাহরণ লিপি error.sh:

#! /bin/bash

zenity --error --text='Something very bad has happened!'  

আমার incron-config:

~/Documents IN_MOVED_TO ~/scripts/error.sh

যদি আমি error.shটার্মিনাল জিইউআই ডায়ালগটিতে চালিত হই তবে পপ আপ হয় না, তবে উপরের এনক্রোন দৃশ্যে।

আমি যখন ডকুমেন্টস ফোল্ডারে ফাইল স্থানান্তর করি তখন কীভাবে আমি সেই ডায়ালগটি পপ করতে উত্সাহ পেতে পারি?

উত্তর:


19

উত্তর এখানে খুঁজে । এতে যুক্ত করুন ~/.bashrc:

xhost local:$USER > /dev/null

এবং তারপরে ক্রোন দ্বারা উত্সাহিত লিপিটিতে জেনটি ব্যবহার করুন:

zenity --error --text='Something very bad has happened!' --display=:0.0

যোগ --display=:0.0করা গুরুত্বপূর্ণ কি


--display =: 0.0 গুরুত্বপূর্ণ ছিল। তবে এখন আমার পরিষেবাতে একই সমস্যা রয়েছে। আমি স্ক্রিপ্টটিকে পরিষেবা হিসাবে রাখলে এটি কিছুই দেখায় না!
ডাঃ জ্যাকি

4

ক্রোনটিতে জিইউআই কমান্ড চালাতে, আপনাকে ক্রোনটি বলতে হবে যে প্রোগ্রামটি কী প্রদর্শন করবে। তার জন্য আপনি ব্যবহার করুন: DISPLAY =: 0 রফতানি করুন

প্রতি 30 মিনিটে একটি জেনिटी নোটিফিকেশনের জন্য, এর সাথে সম্পাদনা করুন crontab -eএবং একটি কাজ সেট করুন:

*/30 *  * * *  export DISPLAY=:0 && /somedirectory/your_zenity_script.sh

কিভাবে সম্পর্কিত: লিঙ্ক


2

কনসোলকিট (কমান্ড ck-list-sessions) ব্যবহার করে এক্স প্রদর্শনের সক্রিয় ব্যবহারকারীর সন্ধান করে আপনি যদি ব্যবহারকারীর নাম নির্বিশেষে কাজ করতে চান তবে এর আর একটি সম্ভাব্য সমাধান রয়েছে । নিচের স্ক্রিপ্টটি রুট হিসাবে চালিত হয়েছে ধরে নেওয়া, এটি আপনার কম্পিউটারের বর্তমান সক্রিয় ব্যবহারকারীর কাছে একটি জেনिटी বার্তা প্রদর্শন করবে:

#!/bin/bash
ACTIVE=$(ck-list-sessions | awk -F' = ' '
    function f(){if(A=="TRUE"){P=U"\t"D;gsub("'"'"'","",P);print P}}
    $1=="\tunix-user"{U=$2} 
    $1=="\tx11-display"{D=$2} 
    $1=="\tactive"{A=$2} 
    END{f()} /^[^\t]/{f()}
')
USERID=${ACTIVE%    *} # tab
USERNAME=$(getent passwd $USERID|cut -f1 -d':')
DISPLAY=${ACTIVE#*  } # tab

DISPLAY="$DISPLAY" su $USERNAME -c "zenity --error --text='Something very bad has happened!'"

ছোট্ট অ্যাজ স্ক্রিপ্টটি কেবল সিকে-তালিকা-সেশনগুলি পার্স করার জন্য এবং সক্রিয় ব্যবহারকারীটির ব্যবহারকারীর নাম এবং প্রদর্শন আউটপুট করার জন্য (যদি আপনি চান ssh -X ব্যবহারকারীদের বাদ দিতে চান তবে এটি একটি স্থানীয় সংযোগের প্রয়োজন হতে পারে)।

(আমি এটি একটি ইউএসবি ড্রাইভে প্লাগ ইন চলমান ব্যাকআপ স্ক্রিপ্টে ব্যবহার করি ))

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