«Περίεργη» συμπεριφορά xinitrc με «χειροκινητα» sessions
#11
Καλό θα είναι μετά την εντολή που σηκώνεις το DE (ή WM) να βάζεις το χαρακτήρα "&" εφόσον θέλεις να δόσεις κι άλλη εντολή. Παράδειγμα:
Κώδικας:
exec gnome-session --failsafe &
exec blah
έτσι η δεύτερη εντολή θα εκτελεστεί αφού ολοκληρωθεί η πρώτη, στην περίπτωσή μας αφού σηκωθεί το DE.
СМЕРТЬ НАСИПЬИКАМ ТРУДЯШИХСЯ
  Απάντηση
#12
Δε μπορεί να υπάρξει επόμενη εντολή μετά το exec, παρά μόνο αν αυτό βρίσκεται σε subshell.

Το ένα «&» στέλνει την εντολή στο background αλλά δεν περιμένει να εκτελεστεί για να τρέξει την επόμενη. Τα δύο «&&» το κάνουν αυτό. Συνηθίζεται στο xinitrc να βάζουμε ένα «&» έπειτα από τις εντολές που θέλουμε να τρέξουν, χωρίς όμως να παρεμβάλλονται στη διαδικασία της εκκίνησης (π.χ. ξεκλείδωμα του keyring, ο compton για το compositing). Όλες όμως μπαίνουν πριν τη γραμμή με το exec, για το λόγο που ανέφερα.

Αλλά ο Dark το θέλει μόνο για να ξεκινάει τον WM και το έχει άδειο.
Το άπλυτο κορμί το πλένεις. Καθαρίζει. Η βρόμικη ψυχή πώς πλένεται;
  Απάντηση
#13
Σε μένα έτσι δουλεύει. Σηκώνω πρώτα το idesk (με μονό &), μετά το WM session (επίσης με μονό &) και τελικά το nm-applet. Αν δε χρησιμοποιήσω "&" το applet εκτελείται πριν σηκωθεί η μπάρα του WM και εμφανίζεται μέσα σε ένα ηλίθιο παραθυράκι. Γνωρίζοντας ότι γι αυτό το λόγο υπάρχει το διπλό "&&" αρχικά το δοκίμασα έτσι αλλά δεν...
Τελικά έτρεξε με τον παραπάνω τρόπο, τον οποίο αν θυμάμαι καλά τον είδα στο forum του arch (νάναι καλά οι geeks).

Edit: Το ίδιο (σωστό) αποτέλεσμα έχω καλώντας το applet από το startup του WM.
СМЕРТЬ НАСИПЬИКАМ ТРУДЯШИХСЯ
  Απάντηση
#14
Η βασική διαφορά μεταξύ «&» και «&&» είναι ότι το δεύτερο θα τρέξει την επόμενη εντολή μόνο αν η προηγούμενη ήταν επιτυχής (exit 0). Από εκεί προκύπτει και ότι οι εντολές θα τρέξουν με τη σειρά (ή δε θα τρέξουν καθόλου αν υπάρχει σφάλμα). Με το ένα «&» ξεκινάνε μεν με τη σειρά που τις βλέπει το shell αλλά τρέχουν παράλληλα και μπορεί π.χ. η τρίτη κατά σειρά να ολοκληρωθεί πριν την πρώτη, ενώ δεν υπάρχει και έλεγχος επιτυχούς ολοκλήρωσης

Όπως τα λες εσύ, υποθέτω ότι βάζεις «&» στη γραμμή του exec. Εφόσον λοιπόν την κάνεις subprocess, μπορείς μετά να τρέξεις άλλη εντολή, με ή χωρίς exec. Για να καταλάβεις τη διαφορά, φτιάξε ένα απλό σκριπτάκι
Κώδικας:
#!/usr/bin/env bash

exec κάτι
echo "κάτι άλλο"
Αν το τρέξεις έτσι, θα δεις ότι το echo δεν εκτελείται. Αν όμως βάλεις «&» στο exec, θα εκτελεστούν και τα δύο.

Δεν είναι λάθος αυτό που κάνεις αλλά δε συνηθίζεται γιατί βασικά δε χρειάζονται πολλαπλά exec. Τυπικά στο xinitrc υπάρχει μόνο ένα exec και μπαίνει στο τέλος. Ένα παράδειγμα (δεν είναι δικό μου)
Κώδικας:
#!/bin/sh

#------------------------------------------------
# merge in defaults and keymaps
#------------------------------------------------

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*. ; do
  [ -x "$f" ] && . "$f"
done
unset f
fi

#------------------------------------------------
# x session settings
#------------------------------------------------

#x cursor
xsetroot -cursor_name left_ptr &
#no bell
xset b off
#typematic delay/ rate
xset r rate 200 20

#gnome-keyring
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
export SSH_AUTH_SOCK
#for uniform qt theme and icons
export QT_QPA_PLATFORMTHEME="qt5ct"

#------------------------------------------------
# autostart programs + scripts
#------------------------------------------------

#/usr/lib/at-spi2-core/at-spi-bus-launcher --launch-immediately &
#gsettings-data-convert &
#start-pulseaudio-x11 &
#xdg-user-dirs-gtk-update &
#/usr/lib/lxpolkit/lxpolkit &
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
setroot -fw ~/dotfiles/resources/blue-ridge-mountain.jpg &
#setroot --blank-color '#1d1f21'
#wallch &
compton -b --config ~/.config/compton.conf &
#lightsOn 120 &
redshift &
#xbacklight -set 75 &
(sleep 3s && clipit -dn) &
(sleep 10s && unclutter -b --timeout 30) &
(sleep 2s && dunst) &
#(sleep 10s && batnotify) &
#rofi -key-run Super_L+a -quiet &
#system-config-printer-applet &
#blueman-applet &
#chromium --no-startup-window &
#caja --no-default-window --no-desktop &
#qutebrowser --nowindow &
#mount_home &
#mpi &
umd &

#------------------------------------------------
# start WM/DE

#sxhd &
#exec bspwm
exec i3

#i3-shmlog exec i3-with-shmlog
#i3log exec i3 -V >> ~/.i3log-$(date +'%F-%k-%M-%S') 2>&1
Το άπλυτο κορμί το πλένεις. Καθαρίζει. Η βρόμικη ψυχή πώς πλένεται;
  Απάντηση
#15
Το ξέρω σου λέω, χρησιμοποιώ το && στα scripts μου (π.χ. στα conky scripts) και λειτουργεί όπως αναμένεται. Ξεκίνησα το .xinitrc με exec idesk && και παρόλο που έτρεξε την εντολή με επιτυχία δε συνέχισε στην επόμενη. Αντίθετα, σε μια εντολή sleep που δοκίμασα για χρονοκαθυστέρηση, έτρεξε όπως περίμενα.
Τώρα που το σκέφτομαι έχει βάση, δεδομένου ότι το idesk σηκώνεται και εξακολουθεί να τρέχει (το ίδιο και ο iceWM). Οπότε ήταν λάθος η χρήση της && και ορθή η χρήση της &.
СМЕРТЬ НАСИПЬИКАМ ТРУДЯШИХСЯ
  Απάντηση
#16
Δεν έχω χρησιμοποιήσει ποτέ iceWM. Γιατί έχει δύο διαφορετικά συστατικά για WM και desktop;
Αφού όμως το idesk που λες δεν έχει έξοδο, ήταν σωστή η σκέψη σου.
Το άπλυτο κορμί το πλένεις. Καθαρίζει. Η βρόμικη ψυχή πώς πλένεται;
  Απάντηση
#17
debianass, post: 28283, member: 1803 είπε κι ελάλησε:Καλό θα είναι μετά την εντολή που σηκώνεις το DE (ή WM) να βάζεις το χαρακτήρα "&" εφόσον θέλεις να δόσεις κι άλλη εντολή. Παράδειγμα:
Κώδικας:
exec gnome-session --failsafe &
exec blah
έτσι η δεύτερη εντολή θα εκτελεστεί αφού ολοκληρωθεί η πρώτη, στην περίπτωσή μας αφού σηκωθεί το DE.

δεν με μοιαζει καν να τρεξω κατι μετα, γιατι το μονο που το θελω, ειναι να σηκωνει κατι χρησιμο μολις φορτωσει ο xserver (γραφικο αν προκειται για το gnome, window manager αν προκειται για τον ποντικοφαρμακο)... αυτο... τιποτα αλλο... ουτε session startups, ουτε προγραμματα, ουτε τιποτα.

αυτο το εχω χρησιμοποιησει καναδυο φορες για δοκιμη στον εξομοιωτη, που ηθελα να δω πως μπορει να εχουν «φτιαξει» το webconverger linuks (που σηκωνει μονο εναν firefox, και οταν τον κλεισεις, επανεκκινει το γραφικο και τον ξανασηκωνει). το καταφερα ακριβως το ιδιο, με αυτον τον τροπο:...

προσθεσα στο τελος του bashrc αυτο:...

Κώδικας:
if [ -z "$DISPLAY" ]; then
    startx
fi
exit

και μεσα στο xinitrc αυτο:...

Κώδικας:
ratpoison --interactive&&
firefox

εχω ενεργοποιησει και το autologin στο tty1 (σε αυτο σηκωνω το γραφικο), οποτε εχω ακριβως το webconverger linuks. α, εχω και ενα gif, που δειχνει ακριβως πως φαινεται. βεβαια εχω κανει το λειτουργικο να μοιαζει με παντζουρια 10, γιατι το gif το εχω βαλει σε ενα χιουμοριστικο «αρθρο»-παρωδια για τα παντζουρια 10, αλλα φαινεται πως παει:...
[Εικόνα: 20170924211930]
ονομαζομαι DarkGoth, και ειμαι «καλα»( ; )... το OsArena με θεραπευσε... (goth=!ok {equals} EMO)...  Emo
  Απάντηση
#18
Δεν έχει διαφορετικά συστατικά, απλά δεν έχει desktop (το idesk είναι ανεξάρτητο του iceWM). Αρχικά ήθελα μόνο τον iceWM, αργότερα θέλησα να καταστήσω ενεργά κάποια buttons προκειμένου να αλλάζω conky script on the fly. Δεν έχασα τίποτα πάντως, τόσο το idesk όσο και ο icewm είναι πανάλαφρα και παρέχουν όσα χρειάζομαι με το παραπάνω.
Περίεργο που δεν τον έχεις δοκιμάσει, ο icewm είναι δημοφιλής στους χρήστες arch (και λιγότερο στους χρήστες debian).
СМЕРТЬ НАСИПЬИКАМ ТРУДЯШИХСЯ
  Απάντηση
#19
Soulrain Falls, post: 28286, member: 1313 είπε κι ελάλησε:Δεν είναι λάθος αυτό που κάνεις αλλά δε συνηθίζεται γιατί βασικά δε χρειάζονται πολλαπλά exec. Τυπικά στο xinitrc υπάρχει μόνο ένα exec και μπαίνει στο τέλος. Ένα παράδειγμα (δεν είναι δικό μου)
Κώδικας:
#!/bin/sh

#------------------------------------------------
# merge in defaults and keymaps
#------------------------------------------------

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*. ; do
  [ -x "$f" ] && . "$f"
done
unset f
fi

#------------------------------------------------
# x session settings
#------------------------------------------------

#x cursor
xsetroot -cursor_name left_ptr &
#no bell
xset b off
#typematic delay/ rate
xset r rate 200 20

#gnome-keyring
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
export SSH_AUTH_SOCK
#for uniform qt theme and icons
export QT_QPA_PLATFORMTHEME="qt5ct"

#------------------------------------------------
# autostart programs + scripts
#------------------------------------------------

#/usr/lib/at-spi2-core/at-spi-bus-launcher --launch-immediately &
#gsettings-data-convert &
#start-pulseaudio-x11 &
#xdg-user-dirs-gtk-update &
#/usr/lib/lxpolkit/lxpolkit &
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
setroot -fw ~/dotfiles/resources/blue-ridge-mountain.jpg &
#setroot --blank-color '#1d1f21'
#wallch &
compton -b --config ~/.config/compton.conf &
#lightsOn 120 &
redshift &
#xbacklight -set 75 &
(sleep 3s && clipit -dn) &
(sleep 10s && unclutter -b --timeout 30) &
(sleep 2s && dunst) &
#(sleep 10s && batnotify) &
#rofi -key-run Super_L+a -quiet &
#system-config-printer-applet &
#blueman-applet &
#chromium --no-startup-window &
#caja --no-default-window --no-desktop &
#qutebrowser --nowindow &
#mount_home &
#mpi &
umd &

#------------------------------------------------
# start WM/DE

#sxhd &
#exec bspwm
exec i3

#i3-shmlog exec i3-with-shmlog
#i3log exec i3 -V >> ~/.i3log-$(date +'%F-%k-%M-%S') 2>&1
ενταξει, ο τυπος το τερματισε. keymaps, ρυθμισεις μεχρι και στο theme στο γραφικο, κρυπτογραφησεις, ολοκληρη λιστα σαν "xsession". και μετα εβαλε και το γραφικο στο τελος, ετσι για να μην μεινει παραπονεμενο. και ΟΛΑ ΑΥΤΑ μεσα στο ταλαιπωρο xinitrc. μονο εγω λειπω αποκειμεσα
ονομαζομαι DarkGoth, και ειμαι «καλα»( ; )... το OsArena με θεραπευσε... (goth=!ok {equals} EMO)...  Emo
  Απάντηση
#20
debianass, post: 28290, member: 1803 είπε κι ελάλησε:Δεν έχει διαφορετικά συστατικά, απλά δεν έχει desktop (το idesk είναι ανεξάρτητο του iceWM). Αρχικά ήθελα μόνο τον iceWM, αργότερα θέλησα να καταστήσω ενεργά κάποια buttons προκειμένου να αλλάζω conky script on the fly. Δεν έχασα τίποτα πάντως, τόσο το idesk όσο και ο icewm είναι πανάλαφρα και παρέχουν όσα χρειάζομαι με το παραπάνω.
Περίεργο που δεν τον έχεις δοκιμάσει, ο icewm είναι δημοφιλής στους χρήστες arch (και λιγότερο στους χρήστες debian).
Νόμιζα ότι είχε λειτουργία για desktop και μου φάνηκε περίεργο αφενός μεν το να έχει τέτοια λειτουργία, αφετέρου δε να τη σπάει σε δεύτερο process.

Εγώ είμαι από εκείνους τους περίεργους που όταν λένε WM σκέφτονται «μόνο tiling». Για τον ίδιο λόγο δε μ' αρέσουν και τα *box. Αν και τώρα τελευταία δεν έχω ασχοληθεί πολύ. Όσο για τη δημοφιλία, αναλόγως που κινείσαι. Αν δεις στο unixporn (όπου βασικά δεν είναι όλοι power users αλλά οι περισσότεροι παίρνουν έτοιμα configs από άλλους και λένε ότι κάτι έκαναν), κυριαρχεί ο i3 -κυρίως λόγω εύκολου config- κι έπειτα bspwm, openbox κλπ.
Το άπλυτο κορμί το πλένεις. Καθαρίζει. Η βρόμικη ψυχή πώς πλένεται;
  Απάντηση


Πάμε στο Forum:


Πλάσματα σουλατσάρουν στο νήμα: 1 Επισκέπτης(ες)