Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 28-04-2022 09:36:41

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Relancer automatiquement un conky sur tous les bureaux

Hello,

J'utilise des conkys.
Et ils fonctionnent bien.

Mais, si je laisse le PC allumé longtemps, je me rends compte que le conky "gonfle" en RAM.
J'ai donc écrit un petit script qui tue le conky et le redémarre si une certaine limite d'utilisation de la RAM est atteinte.
Ce script fonctionne très bien lancé depuis un terminal.
Le conky est relancé et apparaît sur tous les bureaux.

C'est maintenant que ça coince :
J'ai donc créé un "autostart" de ce script à l'ouverture de la session (Démarrage automatique d'applications).
Le script se lance bien et tue aussi bien le conky et le relance.
Mais il n'est relancé que sur le bureau en cours d'utilisation.
Comment faire en sorte qu'il soit apparent sur tous les bureaux ?

Je précise que mon conky est de type "desktop".

Merci de vos conseils.

Edit:
Ces variables sont définies et exportées dans le script :

DISPLAY=:0
XDG_RUNTIME_DIR=/run/user/1000
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus

export DISPLAY
export XDG_RUNTIME_DIR
export DBUS_SESSION_BUS_ADDRESS

Dernière modification par Tawal (28-04-2022 09:38:48)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#2 28-04-2022 09:59:09

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : Relancer automatiquement un conky sur tous les bureaux

Je pense avoir résolu ce souci, ou plutôt contourné le problème.
En effet, mon script comporte une boucle infinie qui teste la quantité de mémoire utilisée par chaque conky.
Je me suis débarrassé de cette boucle et ai inscrit le script dans une crontab.
Dans ma crontab, les variables citées au message précédent sont définies de la même façon (sans export).
J'ai modifié les valeurs afin de voir si ça fonctionne ou pas.
Et ça fonctionne (un log daté me permet de le confirmer au cas où je raterais visuellement le redémarrage des conkys).

Par contre, je ne comprends pas pourquoi, lancé depuis une crontab, ça fonctionne et les conkys sont apparents sur tous les bureaux.
Tandis que, lancé depuis l'autostart, les conkys ne sont apparents que sur le bureau actuel.

Je laisse tourner un peu avant de mettre en [Résolu] [Contourné].

Edit:
La crontab de lancement :

DISPLAY=:0
XDG_RUNTIME_DIR=/run/user/1000
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus

*/2 * * * *      /home/tawal/bin/conky_mem


Le script lancé par la crontab :

#!/bin/bash

readarray -t Conkys < <(ps -C "conky" -o pid,rss,cmd --no-headers)
for id_conky in "${Conkys[@]}"
do
    read -ra Elem <<<"$id_conky"
    mem="${Elem[1]}"
    pid="${Elem[0]}"
    cmd="${Elem[*]:2}"
    if [ "$mem" -ge 15000 ]    # Un peu moins de 15Mio
    then
        kill -15 "$pid"        # kill du conky dépassant la quantité de mémoire
        $cmd &                 # Redémarrage du conky
        echo "$(date "+%y-%m-%d %H:%M:%S")  $cmd    -   Redémarré" >> /home/tawal/.var-local/log/conky_mem.log
    fi
done

exit



Edit2:
Correction du script selon les recommandations de shellcheck.

Dernière modification par Tawal (28-04-2022 10:31:03)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#3 28-04-2022 12:02:53

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.18.9-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Relancer automatiquement un conky sur tous les bureaux

Tawal a écrit :



... je me rends compte que le conky "gonfle" en RAM



Bonjour,

tu peux poster la config ? j'ai eu le même problème. Je m'en suis rendu compte quand le shadow s'opacifiait de plus en plus jusqu'à devenir totalement noir. Une option dans le conkyrc à réglé le problème.


  own_window = true,
  own_window_class = 'Conky',
  own_window_type = 'normal',
  own_window_transparent = true,
  own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
   
 



double_buffer = true,



Si desktop et double_buffer sur false .... ça gonfle

Dernière modification par golgot200 (28-04-2022 12:10:53)

Hors ligne

#4 28-04-2022 20:54:25

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : Relancer automatiquement un conky sur tous les bureaux

Merci de ta réponse.

J'ai déjà :

double_buffer = true


et j'ai essayé avec :

own_window_type = 'normal'

et

own_window_type = 'desktop'

et ça gonfle tout de même.

D'où l'écriture du script wink

Edit:
Voici quand même la configuration du conkyrc :

conky.config = {

-- temps pour fermer conky en seconde. 0 = toujours actif
total_run_times = 0,

-- affiche le texte sur la sortie standard
out_to_console = false,

-- réglage de la mémoire, pour éviter le clignotement
double_buffer = true,

-- Soustraire les mémoires tampons de la mémoire utiliser
no_buffers = true,
text_buffer_size = 2048,

-- taux de rafraichissement de la fenêtre (en secondes)
update_interval = 0.5,

-- nombre d'échantillons à utiliser pour calculer la moyenne d'utilisation
cpu_avg_samples = 4,
net_avg_samples = 2,
diskio_avg_samples = 4,

format_human_readable,
-- short_units

-- taille et positon
alignment = 'top_right',
minimum_width = 180, minimum_height = 300,
maximum_width = 180,


-- écart avec le bord x=gauche ou droit y= haut ou bas
gap_x = 5,
gap_y = 68,

--  afficher les ombres
draw_shades = false,

draw_graph_borders = false,

-- afficher des contours
draw_outline = false,

-- contours autour des blocs de texte
draw_borders = false,

-- largeur du contour
border_width = 1,

-- largeur des marges
border_margin = 5,

--pour que conky tourne en arrière plan background no pour les tests
background = true,

-- utiliser sa propre fenêtre
   own_window = true,
  own_window_type = 'desktop',
  own_window_argb_visual = true,
--  type de fenêtre : normal(avec le cadre) / override / desktop
--  own_window_type override # normal / override / desktop
--  pseudo transparence si vous avez des icones sous le conky elle ne seront plus accessible une fois conky activé
  own_window_transparent = true,
  own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
  own_window_title = 'conky_total',

-- Utiliser Xft (polices lissées etc)
use_xft = true,
xftalpha = 0.8,
override_utf8_locale = true, -- force UTF8

-- Police a utiliser : use_xft doit être a "= true,"
font = 'Trebuchet MS:size=8',

-- Tout le texte en majuscule
uppercase = false,

-- Ajoute des espaces après certains objets pour éviter de les faire bouger.
-- Fonctionne uniquement avec les polices Fixes
use_spacer = 'right',

-- Couleurs
default_color = 'A7BAF2',
default_shade_color = '333333',
default_outline_color = 'black',

-- Barres
default_bar_width = 0, default_bar_height = 6,

-- Lua Load
  lua_load = '~/.conky/scripts/rings.lua',
  lua_draw_hook_pre =  'ring_stats',

};

Dernière modification par Tawal (28-04-2022 20:58:09)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

Pied de page des forums