এক্সমোনড পুনরায় লোড করার সময় এক্সমোবারকে পরিষ্কারভাবে শ্বাস ফেলা


9

এটি কেবল একটি ক্ষুদ্র বিরক্তি, তবে আমি এই কোডটি ব্যবহার করে এক্সমোনাদ কনফিগারেশন ফাইল লোড এক্সমোবার তৈরি করেছি:

xmproc <- spawnPipe "/use/bin/xmobar ~/.xmobarrc"

এটি দুর্দান্তভাবে কাজ করে, তবে প্রতিটি সময় এক্সমোনাদটি পুনরায় লোড করার সময় এটি একটি নতুন এক্সমোবার প্রক্রিয়াটিকে স্প্যান করে। আমি ভাবছি পুরানটিকে মেরে ফেলার কোনও সহজ উপায় আছে কিনা?

আপডেট : যেমন এনট্রোপোর পরামর্শ অনুসারে, আমি এটির মতো একটি বাশ স্ক্রিপ্ট তৈরি করেছি:

#!/bin/bash

for PID in `pgrep xmobar`; do
    kill ${PID} > /dev/null &
done

/usr/bin/xmobar &

এবং এক্সমোনড কনফিগারেশন ফাইল থেকে সেই স্ক্রিপ্টটি কল করুন।

উত্তর:


3

এক্সমোনড সুনির্দিষ্ট নয়, তবে আপনি শেল স্ক্রিপ্টের মাধ্যমে এক্সমোবার চালু করতে পারেন যা বিদ্যমান এক্সমোবার প্রক্রিয়াটি পরীক্ষা করে। দেখুন, উদাহরণস্বরূপ, http://bash.cyberciti.biz/web-server/restart-apache2-httpd- Shell-script/


16

যদি এক্সমোবার শুরু করার জন্য আপনার কাছে শেল স্ক্রিপ্ট থাকে তবে আপনি 'এটি ভুল করছেন'। Xmonad.hs কনফিগার উত্স ফাইলে সঠিক হাস্কেল ফাংশন ব্যবহার করে আপনার xmobar শুরু করা উচিত। আমার কনফিগারেশনের মূল ফাংশনটি একবার দেখুন:

-- put it all together
main = do
    nScreens <- countScreens    -- just in case you are on a laptop like me count the screens so that you can go
    xmonad =<< xmobar myBaseConfig
      { modMask = myModMask
      , workspaces = withScreens nScreens myWorkspaces
      , layoutHook = myLayoutHook nScreens
      , manageHook = myManageHook
      , borderWidth = myBorderWidth
      , normalBorderColor = myNormalBorderColor
      , focusedBorderColor = myFocusedBorderColor
      , keys = myKeys
      , mouseBindings = myMouseBindings
      , logHook = myLogHook
      }
    where
        myLogHook = dynamicLogXinerama

myBaseConfig = gnomeConfig

প্রধান লাইনটি হ'ল:

xmonad =<< xmobar myBaseConfig

এটি এক্সমোবারকে চালানো উচিত হিসাবে চালানো হয়, আপনি xmonad পুনরায় লোড করার পরেও। আপনি বিবৃতি থেকে 'xmobar' ফাংশন পাবেন:

import XMonad.Hooks.DynamicLog (xmobar)

যা ঘুরে আসে xmonad- অবদান প্যাকেজ থেকে

সুতরাং আপনি দেখুন, এক্সমোনাদের সাথে আপনি যে কাজগুলি করতে চান তা ইতিমধ্যে একটি সমাধান করা সমস্যা, আপনাকে কোথায় সন্ধান করতে হবে তা কেবল আপনাকে জানতে হবে। মূলত, আপনার স্ক্রিপ্টটি খালি করুন এবং পরিবর্তে এটি ব্যবহার করুন। আশা করি এটা কাজে লাগবে.


2
ঠিক আছে, আমি spawnPipeএক্সমোনাদ ওয়েবসাইটে কোডটি খুঁজে পেয়েছি, কোথায় দেখতে হবে তা জানা খুব সহজ নয়! তবে শেষ পর্যন্ত, আমি যে প্রযুক্তিটি ক্লিনার হিসাবে ব্যবহার করছি তা আমি পছন্দ করি, এটি ব্যবহার করে DynamicLogআমার পরীক্ষাগুলিতে পুরানো প্রক্রিয়াটি মারা যায় নি। আমি সত্যিই এক্সমনাদকে পছন্দ করি তবে হাস্কেল একটি ভাল কনফিগারেশন ভাষা নয়।
নিকোলাস বুদুরই

1
ঠিক আছে, আপনার জন্য যা কিছু কাজ করে শেষ পর্যন্ত তা ভাল। তবে আমি মনে করি আপনি এটি সম্পর্কে ভুল চিন্তা করছেন। আপনি এক্সমোনাদ কনফিগার করবেন না: আপনি এটি প্রসারিত করেন। হাসেল প্রসারণটি প্রসারণের জন্য উপযুক্ত।
রবার্ট ম্যাসাওলি

আমার জন্য প্রতিবার xmonad পুনরায় লোড করার সময় এটি 2 টি নতুন প্রক্রিয়া তৈরি করছে। স্প্যানপাইপ ব্যবহার করা 2 অতিরিক্ত প্রক্রিয়া তৈরি করে। পিএস -এক্স প্রত্যাবর্তন করে: "/ বিন / শ / সি / ক্যাপাল / বিিন / এক্সমোবার ~ /। এক্সমোবারক:", "/ বিন / এস-সি এক্সমোবার", "~ / .ক্যাবাল / বিন / এক্সমোনাদ ~ /। এক্সমোবারক" এবং "এক্সমোবার"।
শনিবার

উভয়ই পুনরায় ইনস্টল করা উপরের আমার প্রশংসায় সমস্যাটি স্থির করে।
শনিবার

1
আমি নিশ্চিত যে আপনার spawnPipeইচ্ছা নতুন থ্রেডে কোনও প্রক্রিয়া তৈরি হবে। আপনি যদি spawnPipeপরিবর্তে একটি শিশু প্রক্রিয়া তৈরি করতে চান (মূল প্রক্রিয়াটি বন্ধ হয়ে যায় এমনটি হয়) তবে আমার ভয় হয় আপনার নিজের spawnPipeফাংশনটি লিখতে হবে।
yyny
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.