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

Linux Mint 19.1 πρόβλημα με terminal


Dinos_12345

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

Καλησπέρα και καλή χρονιά να έχουμε.

Έκανα update στο LM 19.1 στο pc μου και όταν ανοίγω το terminal, βλέπω αυτό.

image.png.c27ce69ea33c7fab6735cb4a56c1200f.png

Το imwheel είναι ένα προγραμματάκι για να μου κάνει το scrolling, το ίδιο γρήγορο με τα windows. Το έχω στο ~/.bashrc μου και κάθε φορά που τρέχω ένα terminal window, μου βγάζει αυτό το "INFO" message.

Δοκίμασα να στέλνω το output του imwheel στο /dev/null αλλά το imwheel δεν έβγαζε τίποτα σαν output, άρα δεν έστελνε και τίποτα εκεί και το μήνυμα συνέχισε να εμφανίζεται. Φαντάζομαι πως είναι κάτι με το LM 19.1 γιατί πριν δεν το έβγαζε. Μήπως να βάλω κάπου αλλού το imwheel command; Αν το βγάζει κάθε φορά αυτό το μήνυμα, αυτό δεν σημαίνει ότι ξεκίνησε νέα διαδικασία του imwheel με τάδε PID; 

 

Ευχαριστώ για τον χρόνο σας.

  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Τι ακριβώς έχεις στο .bashrc;

edit

Για την ιστορία, υπάρχει ένα σύνολο αρχείων τα οποία διαβάζονται από το bash process όταν αυτό ξεκινάει (πχ /etc/profile, .profile, .bash_profile, .bashrc κτλ). Επίσης υπάρχουν τουλάχιστον 4 διαφορετικοί τυποι shell:

  • interactive login shell
  • interactive shell
  • non-interactive login shell (αυτό νομίζω δημιουργείται όταν τρέχεις μια εντολή σε ένα remote σύστημα μέσω SSH)
  • non-interactive shell

O κάθε τύπος shell διαβάζει ένα διαφορετικό υποσύνολο των παραπάνω αρχείων. Ανάλογα με το τι θες να κάνεις κάθε φορά, θεωρητικά τουλάχιστον, βάζεις την εντολή που θες στο κατάλληλο αρχείο και τελείωσες. Για περισσότερες πληροφορίες δες το section INVOCATION στο man bash. Βέβαια για να γίνει ακόμα πιο τρι-μπούρδελο η κατάσταση, μια διανομή μπορεί να βάλει πχ το ~/.profile να κάνει source το .bashrc ακόμα και αν το bash το ίδιο δεν θα διάβαζε το .bashrc για τον συγκεκριμένο τύπο shell.

Στο zsh που εγώ χρησιμοποιώ, μια καλή περιγραφή της ιεραρχίας των αρχείων κατά το initialization του shell υπάρχει εδώ. Δυστυχώς δεν έχω βρει κάτι εξίσου αναλυτικό για το bash.

Φυσικά για να λύσεις το θέμα που λες, δεν χρειάζεται να καταλάβεις όλα το bash init, καθώς υπάρχουν εύκολα work-arounds, πχ μέσω pgrep:

if pgrep -x "imwheel" > /dev/null
then
    echo "Running"
else
    echo "Stopped"
fi

Μια άλλη, και μάλλον πιο clean λύση είναι να βάλεις όλα όσα θες να είναι ενεργά μόνο όταν είσαι σε X να τρέχουν μέσω .xinitrc ή .xprofile

Το μειονέκτημα εδώ, είναι ότι έχεις πιο πολλά αρχεία με configuration

edit

Αυτό κάτι λέει για bash https://github.com/0cjs/sedoc/blob/master/lang/bash/init.md

 

Επεξ/σία από pmav99
  • Like 1
  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@pmav99 Απ'ότι διάβασα, καλύτερα να βάζω ότι command θέλω να τρέχει μία φορά, στο .bash_profile

Στο .bashrc έχω το default και από κάτω έχω βάλει αυτό `imwheel`

Δηλαδή, και από τα λεγόμενα σου, το .bashrc διαβάζεται κάθε φορά που ανοίγει νέο terminal window και ότι είναι μέσα του, τρέχει ξανά και ξανά.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Το πως ακριβώς θα το χειριστείς εξαρτάται από πολλούς παράγοντες. Ενδεικτικά:

  • το shell που χρησιμοπ οιείς
  • τη διανομή που χρησιμοποιείς και τα default που επιλέγει για το shell που χρησιμοποιείς (υποθέτω ότι δεν έχεις τόσο strong opinions για να αλλάξεις τα defaults στο /etc/skel).
  • τη χρήση που κάνεις στο μηχάνημα (άλλα πράγματα θα κάνεις σε ένα remote server και άλλα στο desktop σου)
  • το αν σε ενδιαφέρει να μπορείς να μεταφέρεις τα configurations σου σε άλλο μηχάνημα και τι ακριβώς χρησιμοποιείς για να κάνεις τη μεταφορά/συγχρονισμό (πχ αν σε ενδιαφέρει αυτό, μπορεί να προτιμήσεις να κρατήσεις όλα τα configs στο .bashrc χρησιμοποιώντας ένα conditional όπως αυτό που σου έδειξα με το pgrep και ας μην είναι τόσο clean ως λύση)

Προσωπικά χρησιμοποιώ σκέτο Window Manager (τον awesome WM) και δεν χρησιμοποιώ login manager οπότε κάνω login μέσα από το tty. Όταν κάνω login στον κανονικό μου χρήστη το έχω βάλει να ξεκινάει αυτόματα ο X (το login shell διαβάζει το .zprofile, το .zprofile τρέχει το startx, το οποίο startx διαβάζει το .xinitrc το οποίο κάνει exec τον awesome).

Όταν κάνω login ως root, μένω στο tty. Με τον τρόπο αυτό, αν τυχόν σπάσει ο X (AKA αν κάνω εγώ καμιά μαλακία), απλά κάνω login ως root και βγαίνω κατευθείαν σε κονσόλα για να κάνω ότι sys-admin tasks χρειάζονται (upgrade/donwgrade/whatever).

Τις εφαρμογές που έχει νόημα να τρέχουν κάθε φορά που ανοίγει ο υπολογιστής τις τρέχω μέσα από το .zprofile. Πχ για να έχω ελληνικό layout στο πληκτρολόγιο:

if which setxkbmap &>/dev/null; then
    setxkbmap -option grp:switch,grp:alt_shift_toggle,grp_led:scroll us,gr
fi

Τις εφαρμογές που έχει νόημα να τρέχουν μόνο όταν τρέχει και o X τις ξεκινάω μέσα από το .xinitrc. Παραδείγματα τέτοιων εφαρμογών είναι:

H λογική του να τις έχεις στο .xinitirc/.xprofile είναι ότι αν τυχόν αύριο αλλάξεις shell αυτές θα συνεχίζουν να ξεκινάνε και ας άλλαξε το configuration file που χρησιμοποιεί το shell σου. Θα μου πεις κάθε πότε αλλάζεις shell; Η απάντηση είναι μία φορά, όταν πας από bash σε zsh, αλλά αυτό είναι άλλη υπόθεση :P

Μια άλλη περίπτωση που είναι χρήσιμό να ξεκινάνε αυτές οι εφαρμογές στο .xinitrc/.xprofile είναι όταν πειραματίζεσαι με τα διάφορα zsh-frameworks (oh-my-zsh και prezto)

Πλέον, που έχω καταλήξει στο setup μου, (zsh + prezto)  δεν μου χρειάζεται να τις ξεκινάω από .xinitrc αλλά μιας και το χρησιμοποιώ έτσι και αλλιώς (λόγω awesome), δεν χάνω και τίποτα, και αν στο μέλλον κάνω και άλλες αλλαγές, θα συνεχίσουν να ξεκινάνε κανονικά)

All that being said, ο σύγχρονος, αν και verbose, τρόπος για να ξεκινάς background services είναι να τα τρέχεις μέσω systemd. Πχ για το imwheel: https://wiki.archlinux.org/index.php/IMWheel#Run_IMWheel_on_startup. Σε desktop μηχάνημα, προσωπικά δεν θα ασχολιόμουν, παρά μόνο για εκπαιδευτικούς λόγους

 

Επεξ/σία από pmav99
  • Confused 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όχι όχι, απλά να σετάρω το imwheel θέλω, όλα αυτά είναι πααααααααααααρα πολλά για την χρήση που κάνω. 😛

Ευχαριστώ πολύ για τον χρόνο σου και για την ανάλυση που έκανες :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

22 λεπτά πριν, Dinos_12345 είπε

όλα αυτά είναι πααααααααααααρα πολλά

Ισχύει, αλλά αν σκεφτείς ότι το unix και τα shells του είναι κάτι που αναπτύσσεται οργανικά εδώ και 4+ δεκαετίες, το μόνο σίγουρο είναι ότι το ζήτημα δεν θα είναι απλό :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 ώρα πριν, pmav99 είπε

Ισχύει, αλλά αν σκεφτείς ότι το unix και τα shells του είναι κάτι που αναπτύσσεται οργανικά εδώ και 4+ δεκαετίες, το μόνο σίγουρο είναι ότι το ζήτημα δεν θα είναι απλό :P

Τελικά ήταν τόσο έυκολο όπως το να το βάλεις στα startup programs με command. ezpz lemon sqeezy

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 εβδομάδες αργότερα...
Στις 6/1/2019 στις 2:13 ΜΜ, Dinos_12345 είπε

Το imwheel είναι ένα προγραμματάκι για να μου κάνει το scrolling, το ίδιο γρήγορο με τα windows.

Spoiler

Offtopic: Thank you! Τόσα χρόνια που δουλεύω linux σαν βασικό λειτουργικό δεν έβγαλα άκρη με την ταχύτητα του scrolling με τη ροδέλα, και όταν άνοιγα τα Windows μου φαινόταν απευθείας πιο άνετο το γρήγορο scroll τους. Μου έλυσες τα χέρια με το προγραμματάκι! 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 ώρα πριν, noc είπε
  Απόκρυψη περιεχομένων

Offtopic: Thank you! Τόσα χρόνια που δουλεύω linux σαν βασικό λειτουργικό δεν έβγαλα άκρη με την ταχύτητα του scrolling με τη ροδέλα, και όταν άνοιγα τα Windows μου φαινόταν απευθείας πιο άνετο το γρήγορο scroll τους. Μου έλυσες τα χέρια με το προγραμματάκι! 

Ναι είναι ότι καλύτερο είναι η αλήθεια

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα
  • Δημιουργία νέου...