Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

  • Απαντ. 889
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Η πρωτη εντολη που ειχε δειξει ο προφεσσορας με το "w" σε arch ειχε το αναμενομενο σωστο αποτελεσμα.

 

Ιδιες εντολες , σε διαφορετικες διανομες να βγαζουν διαφορετικα αποτελεσματα...απλα με ξεπερναει :) 

Ειναι αναμενομενο ομως εως ενα βαθμο...

Δημοσ.

Όπως είπε και ο mphxths, με το grep παίρνεις και το ίδιο το grep σαν αποτέλεσμα. Αν θέλεις οπωσδήποτε να δουλέψεις με το ps γιατί δεν χρησιμοποιείς τις εγγενείς λειτουργίες του ps αντί να μπλέκεις με το grep ?

 

% ps -C Xorg                  
  PID TTY          TIME CMD

% ps -C X
  PID TTY          TIME CMD
 3721 tty7     00:00:38 X
% ps -C X -o user,pid,tty,time,cmd
USER       PID TT           TIME CMD
root      3721 tty7     00:00:38 /usr/bin/X -nolisten tcp :0
Η πρώτη σύνταξη δεν μου παίζει γιατί εδώ που είμαι τώρα (gentoo) μάλλον το xinit καλεί το X (το οποίο είναι symlink στο Xorg) αντί για το xorg.
Δημοσ. (επεξεργασμένο)

Φταιει μάλλον το γεγονός ότι η fedora έχει κάνει κάποιου είδους χακιά με Xorg wrapper ή χρησιμοποιεί κάτι σε rootless Xorg/wayland hybrid. Εμένα η εντολή μου επιστρέφει έναν user (το σωστό). Anywayz, θα γίνει μάλλον το failsafe με το w one-liner που υπάρχει ήδη.


Όπως είπε και ο mphxths, με το grep παίρνεις και το ίδιο το grep σαν αποτέλεσμα. Αν θέλεις οπωσδήποτε να δουλέψεις με το ps γιατί δεν χρησιμοποιείς τις εγγενείς λειτουργίες του ps αντί να μπλέκεις με το grep ?
 

% ps -C Xorg                  
  PID TTY          TIME CMD

% ps -C X
  PID TTY          TIME CMD
 3721 tty7     00:00:38 X
% ps -C X -o user,pid,tty,time,cmd
USER       PID TT           TIME CMD
root      3721 tty7     00:00:38 /usr/bin/X -nolisten tcp :0
Η πρώτη σύνταξη δεν μου παίζει γιατί εδώ που είμαι τώρα (gentoo) μάλλον το xinit καλεί το X (το οποίο είναι symlink στο Xorg) αντί για το xorg.

 

Είχα στα υπόψην και αυτό, γιαυτο ήθελα κάτι τελειώς uni-platform(w,lastlog/loginctl,ps) να δουλευει παντού (αλλά σίγουρα διανομές με systemd - γιατι το systemd-denotify έχει hard dep το systemd).

Αυτο που ζητάω εδώ είναι μια διαφοροποίηση του postinstall.sh script που τρέχει το προγραμματάκι με τα desktop notifications που έφτιαξα στο github(gkarakou/systemd-denotify).

 

....................................................................................................................

 

 

Τελικά έκανα commit αυτό:

#!/bin/sh
getXuser=`/usr/bin/w |grep :0|cut -d " " -f1|sort|uniq`
#fedora
/usr/bin/unalias ps
getXorgUser=`/usr/bin/ps -aux|/usr/bin/grep Xorg|/usr/bin/cut -d " " -f1|/usr/bin/sort|/usr/bin/uniq`
getXwaylandUser=`/usr/bin/ps -aux|/usr/bin/grep "Xwayland :0"|/usr/bin/cut -d " " -f1|/usr/bin/sort|/usr/bin/uniq`
if [ ! -z "$getXuser" ];then
/usr/sbin/usermod -a -G systemd-journal $getXuser
elif [ ! -z "$getXorgUser" ];then
/usr/sbin/usermod -a -G systemd-journal $getXorgUser
elif [ ! -z "$getXwaylandUser" ];then
/usr/sbin/usermod -a -G systemd-journal $getXwaylandUser
else
echo " Something went wrong. Please add the desktop user in systemd-journal group"
fi
exit 0;

χωρίς να το τεστάρω αλλά υποθέτω είναι οκ.

Επεξ/σία από mad-proffessor
  • 3 εβδομάδες αργότερα...
Δημοσ.

Αυτο ηταν, ηθελε bash. Μου εχει ξανατυχει ακομα 1-2 φορες παλιοτερα. Αλλα γιατι το κανει, αφου το bash ειναι οντως το shell που χρησιμοποιει ο χρηστης μου?

 

$ echo $SHELL
/bin/bash

Πρεπει να του κανω αλλαγες. Το feh βαζει την εικονα οπου να 'ναι και οπως να 'ναι και το σκριπτ δεν τελειωνει στο τελος, επειδη περιμενει 24 ωρες να αλλαξει το wallpaper

 

NOW=$(date +%s)
    SLEEP=`echo $TOMORROW-$NOW|bc`
    sleep $SLEEP
done

Αν σβησω αυτο το κομματι θα ειναι καλα? Να σβησω κι αλλα? Βασικα, θα το βαλω να τρεχει σε καθε εκκινηση οταν το διορθωσω.

Δημοσ.

Φαντάζομαι ότι το script αυτό έχει γραφτεί για να το ξεκινάς σαν διεργασία στο background όταν πρωτοκάνεις login. Δηλαδή:

/bin/bash ./bing_wallpaper.sh &

Αυτό που προτείνεις δεν θα δουλέψει όμως, γιατί οι γραμμές που παρέθεσες είναι εντός ενός loop, άρα αφού δεν θα εκτελείται η sleep, το σώμα του loop θα εκτελείται διαρκώς (download κτλ). Δοκίμασε αυτό που σου λέω με το & και αν δεν σου αρέσει, πες μας τι ακριβώς συμπεριφορά θέλεις και το βλέπουμε


edit

 

Άκυρο, αφού τα λέει το documentation ρε. Απλά θέλει και ένα δεύτερο argument για να εκτελέσει το loop μόνο μια φορά

https://github.com/marguerite/linux-bing-wallpaper#easy-commands

  • Like 1
  • 4 μήνες μετά...
Δημοσ.

Θελω απο διαφορα addon.xml (ονομα του αρχειου), που ειναι σε διαφορετικους υποφακελους το καθενα αλλα ολα μεσα στο /storage/kodi/addons/ να σβηνω αυτοματα οποια γραμμη λεει πανω της "xbmc.service", πχ αυτη εδω θελω να φυγει ολοκληρη.

<extension point="xbmc.service" library="service.py" start="startup" />
Δημοσ.

 

Θελω απο διαφορα addon.xml (ονομα του αρχειου), που ειναι σε διαφορετικους υποφακελους το καθενα αλλα ολα μεσα στο /storage/kodi/addons/ να σβηνω αυτοματα οποια γραμμη λεει πανω της "xbmc.service", πχ αυτη εδω θελω να φυγει ολοκληρη.

<extension point="xbmc.service" library="service.py" start="startup" />

 

Κάτι τέτοιο περίπου (δεν το δοκίμασα καθόλου, από μνήμης είναι)

find . -type f -name 'addon.xml' -exec sed '/xbmc\.service/d' {} \;
  • Like 1
Δημοσ.

Ναι γιατί με το grep πετάς το line στο stdout και μετά το δίνεις σαν input στην sed με το -i switch (file update). Επίσης ξέχασες το leading / στις παραμέτρους του sed πρίν το xbmc.service.

 

Δοκίμασέ το έτσι:

find . -type f -name 'addon.xml' -exec sed -i '/xbmc\.service/d' {} \;
  • Like 1
Δημοσ.

:o

 

Οντως το / ελειπε! Τωρα δουλευει κανονικα, και δεν μπορω να τσεκαρω το δικο σου γιατι δεν εχω προβληματικα αρχεια πλεον :P 

Με σκετο sed παιζει να γινει? Ολο αυτο θα μπει στο autostart.sh του openelec και δεν θελω να εινια πολυπλοκο...

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...