UFFICIALE L'OT di Linux e altri OS

Pubblicità
@e_ale92 ma se crei un'applicazione:
Codice:
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.6
Name=WallpaperRotation
Comment=Rotazione sfondi
Exec=/home/user/sfondi.sh
Icon=/path/to/icon
Terminal=false
Type=Application
Categories=Utility;Application;
Name[it_IT]=WallpaperRotation
e sfondi.sh:
Codice:
#!/bin/bash


while [[ 1 -eq 1 ]]; do
for i in $(echo /home/user/Immagini/*.jpg); do
echo $i
gsettings set org.gnome.desktop.background picture-uri file:///${i}
sleep 5;
done
done
mettendo l'applicazione in /home/user/.local/share/applications/ e impostando l'applicazione in gnome-tweak-tool-->applicazioni d'avvio.

per @« MoMy » :inchino:

funziona :luxhello: per ora lascio tutto così... anche perché sono troppo occupato in questo periodo :asd:

Ai service non serve +x (i miei service e timer han tutti questi permessi -rw-r--r--), poi se crei un timer, che sia con cron o systemd, l' ultima parte dello script non serve a nulla perché il timer dovrebbe adempiere il compito di avviare lo script in base al delay impostato/creato. Infine devi tener presente che lo script deve partire non prima di aver avviato il server X o wayland che sia, altrimenti cosa avvia?
Nel journalctl -b dovresti trovar traccia dell' errore.
In pratica lo farei così:
Timer:
Codice:
[Unit]
Description=auto wallpaper change
[Timer]
OnBootSec=50sec
# OnUnitActiveSec=10sec
OnUnitActiveSec=7200sec
Unit=wallpaper.service
[Install]
WantedBy=multi-user.target

Service:
Codice:
[Unit]
Description=auto wallpaper change
[Service]
Type=oneshot
ExecStart=/home/bcclsn/.wallpaper_changer.sh
# /usr/bin/echo Il service funziona
[Install]
WantedBy=multi-user.target
Potresti fare anche una prova con un paio di echo, se noti sia nel timer e service ci son due righe bindate. Journalctl -f è come dmesg -w.
Lanci systemctl start blabla.timer e poi systemctl -f, l' echo pubblica nel journal.

continua a non funzionare :muro:
 
Avvii il .timer e non .service, vero?

sì. il journal dice anche che è avviato, ma non succede nulla nonostante i 5 secondi

vabbè per lo sfondo non mi interessa più di tanto perché la soluzione del .desktop mi va bene uguale.
il problema è che volevo snappare aggiungendo un @weekly /comando ... e che ovviamente non riesco a far funzionare :asd: xD

ma cmq, poi si vedrà... non ho tempo per smanettare :(
 
Boh!
Ho fatto una prova al volo e funge, almeno gli echo funzionano.
prova.service
Codice:
[Unit]
Description=prova

[Service]
Type=oneshot
ExecStart=/home/momy/.scripts/ciao

[Install]
WantedBy=multi-user.target

prova.timer
Codice:
[Unit]
Description=prova Timer

[Timer]
OnBootSec=50sec
OnUnitActiveSec=10sec
Unit=prova.service

[Install]
WantedBy=multi-user.target

Lo scriptino
Codice:
#!/bin/bash

wallpaperdir='/home/momy/.sfondi'                      
files=($wallpaperdir/*)
randompic=`printf "%s\n" "${files[RANDOM % ${#files[@]}]}"`
## gsettings set org.gnome.desktop.background picture-uri $randompic
echo $wallpaperdir
echo $files
echo $randompic
exit 0

A proposito, metti che lo legga lo stesso, ma se togli l' ultimo slash da wallpaperdir='/home/bcclsn/Immagini/wallpaper/', eviti che il nome file acquisito sia /home/bcclsn/Immagini/wallpaper//nome-wall (wallpaper//nome-wall).
 
Boh!
Ho fatto una prova al volo e funge, almeno gli echo funzionano.
prova.service
Codice:
[Unit]
Description=prova

[Service]
Type=oneshot
ExecStart=/home/momy/.scripts/ciao

[Install]
WantedBy=multi-user.target

prova.timer
Codice:
[Unit]
Description=prova Timer

[Timer]
OnBootSec=50sec
OnUnitActiveSec=10sec
Unit=prova.service

[Install]
WantedBy=multi-user.target

Lo scriptino
Codice:
#!/bin/bash

wallpaperdir='/home/momy/.sfondi'                      
files=($wallpaperdir/*)
randompic=`printf "%s\n" "${files[RANDOM % ${#files[@]}]}"`
## gsettings set org.gnome.desktop.background picture-uri $randompic
echo $wallpaperdir
echo $files
echo $randompic
exit 0

A proposito, metti che lo legga lo stesso, ma se togli l' ultimo slash da wallpaperdir='/home/bcclsn/Immagini/wallpaper/', eviti che il nome file acquisito sia /home/bcclsn/Immagini/wallpaper//nome-wall (wallpaper//nome-wall).
grazie mille!
domani provo e ti faccio sapere :)
 
Penso di sì, ma mi chiedo se si debba impostare qualche variabile d' ambiente. Mai provato o fatto, ma visto che ho un paio di timer... si può provare. :P
 
già provato con
Codice:
Environment=DISPLAY=:0
e funziona perfettamente. naturalmente ho messo il .service e il .timer in /home/username/.config/sysyemd/user/.

@e_ale92 hai provato a vedere lo stato del servizio? cioè il servizio è abilitato ma stoppato?
 
Tu usi il gnomo se non sbaglio e hai provato il cambio del wall usando il .timer? A parte esiste l' estensione per Gnome, si chiama Desk-changer però non ho approfondito più di tanto.
Per come la vedo io poi... per cosette del genere preferisco lo scriptino fatto in casa. :P
 
già provato con
Codice:
Environment=DISPLAY=:0
e funziona perfettamente. naturalmente ho messo il .service e il .timer in /home/username/.config/sysyemd/user/.

@e_ale92 hai provato a vedere lo stato del servizio? cioè il servizio è abilitato ma stoppato?

ho provato. risulta attivo e senza errori... ma no cambia un tubo :lol:

cmq per i wall lascio così perché funziona bene ed è carino avere l'icona nel menù delle app :asd:
quello che devo automatizzare e che vorrei fare senza .desktop, è l'esecuzione di un comado del tipo:
Codice:
sudo mount /path && sudo snapper /option/path/etc. && sudo umount /path
e vorrei che fosse eseguito settimanalmente.
so che sembra strano, ma ho provato ad eseguire comandi semplici tipo mkdir ma non ha funzionato... nonostante il servizio attivo e senza errori. bah... sarò nabbo io

Tu usi il gnomo se non sbaglio e hai provato il cambio del wall usando il .timer? A parte esiste l' estensione per Gnome, si chiama Desk-changer però non ho approfondito più di tanto.
Per come la vedo io poi... per cosette del genere preferisco lo scriptino fatto in casa. :P

ma infatti, viva gli script! tra l'altro quelle estensioni piazzano icone e pannelli nella top bar, cosa che odio a morte :lol: :asd:
 
Insomma stasera coi nipotuzzi mi son visto Lego Batman, dal morir dal ridere. :lol:
Per il resto e mia curiosità...
Non avendola ho creato la cartella ~/.config/systemd/user e aggiustato il .timer e .service così:
.service
Codice:
[Unit]
Description=prova

[Service]
Type=oneshot
Environment=DISPLAY=:0
ExecStart=/usr/bin/bash /home/momy/.scripts/ciao

################## I Commenti sono da Cancellare
##[Install]
##WantedBy=timers.target
##################

.timer
Codice:
[Unit]
Description=prova Timer

[Timer]
OnBootSec=50sec
OnUnitActiveSec=10sec
Unit=prova.service

[Install]
WantedBy=timers.target

Con Openbox uso feh per lo sfondo desk, quindi:
Codice:
#!/bin/bash

wallpaperdir='/home/momy/.sfondi'                   
files=($wallpaperdir/*)
randompic=`printf "%s\n" "${files[RANDOM % ${#files[@]}]}"`
##gsettings set org.gnome.desktop.background picture-uri $randompic
feh --bg-fill $randompic

Codice:
$ systemctl --user enable prova.timer
$ systemctl --user start prova.timer
Ogni 60 (50 + 10) secondi mi cambia lo sfondo. Probabilmente si potrà usare qualche altra opzione... buh!

L' errore, da pollo proprio, è che il service non esegue uno script se non gli dici con cosa avviarlo (ExecStart=/usr/bin/bash /home/momy/.scripts/ciao). :p

Per il discorso Snapper ti dico come la penso, poi... \0/
Btrfs mette a disposizione tutti i comandi per gestire i subvol, gli snap, i send etcetc quindi, a cosa mi serve uno script via cli che mi crea più problemi che soluzioni.
In qualsiasi caso metterei tutto dentro uno scriptino invece di usare un alias, salverei la partizione di boot (o esp se uefi) con rsync (o DD) perché in caso di comando distruttore lo snap non te la salva e sistemerei il file /etc/fstab eliminando l' opzione subvolid= perché in caso rollback, il file /etc/fstab cerca un subvolid= che non è dello snap in carico.
Della serie, non è tutto così bello, pinto e automatico.

Bye^^
 
Ultima modifica:
Insomma stasera coi nipotuzzi mi son visto Lego Batman, dal morir dal ridere.
Per il resto e mia curiosità...
Non avendola ho creato la cartella ~/.config/systemd/user e aggiustato il .timer e .service così:
.service
Codice:
[Unit]
Description=prova

[Service]
Type=oneshot
Environment=DISPLAY=:0
ExecStart=/usr/bin/bash /home/momy/.scripts/ciao

[Install]
WantedBy=timers.target

.service
Codice:
[Unit]
Description=prova Timer

[Timer]
OnBootSec=50sec
OnUnitActiveSec=10sec
Unit=prova.service

[Install]
WantedBy=timers.target

Con Openbox uso feh per lo sfondo desk, quindi:
Codice:
#!/bin/bash

wallpaperdir='/home/momy/.sfondi'                  
files=($wallpaperdir/*)
randompic=`printf "%s\n" "${files[RANDOM % ${#files[@]}]}"`
##gsettings set org.gnome.desktop.background picture-uri $randompic
feh --bg-fill $randompic

Codice:
$ systemctl --user enable prova.timer
$ systemctl --user start prova.timer
Ogni 60 (50 + 10) secondi mi cambia lo sfondo. Probabilmente si potrà usare qualche altra opzione... buh!

L' errore, da pollo proprio, è che il service non esegue uno script se non gli dici con cosa avviarlo (ExecStart=/usr/bin/bash /home/momy/.scripts/ciao).

Per il discorso Snapper ti dico come la penso, poi... \0/
Btrfs mette a disposizione tutti i comandi per gestire i subvol, gli snap, i send etcetc quindi, a cosa mi serve uno script via cli che mi crea più problemi che soluzioni.
In qualsiasi caso metterei tutto dentro uno scriptino invece di usare un alias, salverei la partizione di boot (o esp se uefi) con rsync (o DD) perché in caso di comando distruttore lo snap non te la salva e sistemerei il file /etc/fstab eliminando l' opzione subvolid= perché in caso rollback, il file /etc/fstab cerca un subvolid= che non è dello snap in carico.
Della serie, non è tutto così bello, pinto e automatico.

Bye^^

rispondo alla parte btrfs perché non ho avuto tempo di testare gli script.

in due parole: HAI RAGIONE!
argomentando: stavo snappando con le utility btrfs e son passato a snapper perché pensavo funzionasse in modo più automatico. ora che mi sono reso conto che non è così, stavo pensando di togliere tutto e tornare alle utility btrfs.
l'unico dubbio è come far snappare btrfs nel subvol @snapshots montato all'occorrenza in /.snapshots... ma basta che mi rileggo i tuoi vecchi post perché avevo risolto (e purtroppo non ricordo come) :patpat:

appena ho tempo modificherò anche l'fstab e vedrò per il backup di /boot. senza quella, in caso di disastro, dovrei installare arch e poi ripristinare lo snapshot di / oppure sarei proprio a spasso e lo snapshot sarebbe inutilizzabile? :boh:

p. s. uso gli alias perché non sono bravo con gli script :( se sapessi come fare, scripterei il mount, lo snapshot, l'umount e il backup incrementale di /boot... solo che non so da dove partire e non ho tempo per imparare, quindi vado di alias :/

EDIT. sono ritornato al tuo vecchio sistema ma non mi trovo. credo che in questi casi non sapere cosa succede sotto al cofano sia meglio :sisi:
sbaglio o il tuo sistema
- Creo la cartella in /mnt/btrfs per montare @;
# mkdir /mnt/btrfs
- Monto la radice / dando per scontato che il disco/partizione sia /dev/sda1;
# mount -t btrfs -o subvol=/ /dev/sda1 /mnt/btrfs/
- Creo un subvol ove andrò a depositare gli snapshots e lo chiamo snap;
# btrfs subvolume create /mnt/btrfs/snap
- Snappo la radice / che sappiamo essere nel subvol @;
# btrfs subvolume snapshot -r /mnt/btrfs/@ /mnt/btrfs/snap
- Smonto /mnt/btrfs che sappiamo essere il punto di mount del subvol=/.
# umount /mnt/btrfs
non permette snapshot multipli? mi spiego: creato uno snapshot di @ non me ne fa creare un'altro perché dice che è già presente. snapper creava le cartelle 1 2 3 4 .. N in cui salvava i vari snapshot. timeshift-btrfs le rinominava addirittura con la data.
 
Ultima modifica:
Tu usi il gnomo se non sbaglio e hai provato il cambio del wall usando il .timer? A parte esiste l' estensione per Gnome, si chiama Desk-changer però non ho approfondito più di tanto.
Per come la vedo io poi... per cosette del genere preferisco lo scriptino fatto in casa. :P
allora col .timer abilitato e avviato (tramite $ systemctl --user) lo script (tuo) funziona perfettamente, l'unico inconveniente è che anche istruendo con '# loginctl enable-linger $USER' il servizio/timer è caricato al successivo reboot ma non avviato: c'è bisogno di digitare 'systemctl --user start $nometimer.timer'; ho provato con WantedBy=basic.target e default-target. hai suggerimenti?

@e_ale92 prova nel .timer le opzioni
Codice:
OnCalendar=°:__/__
Persistent=true
specificando in OnCalendar l'intervallo relativo a una settimana; il persistent true fa in modo che se salti il serviazio previsto al successivo avvio della macchina ti fa in automatico l'esecuzione del comando.
 
allora col .timer abilitato e avviato (tramite $ systemctl --user) lo script (tuo) funziona perfettamente, l'unico inconveniente è che anche istruendo con '# loginctl enable-linger $USER' il servizio/timer è caricato al successivo reboot ma non avviato: c'è bisogno di digitare 'systemctl --user start $nometimer.timer'; ho provato con WantedBy=basic.target e default-target. hai suggerimenti?

@e_ale92 prova nel .timer le opzioni
Codice:
OnCalendar=°:__/__
Persistent=true
specificando in OnCalendar l'intervallo relativo a una settimana; il persistent true fa in modo che se salti il serviazio previsto al successivo avvio della macchina ti fa in automatico l'esecuzione del comando.

ragazzi che devo dirvi... a me non cambia una cippa :lol: userò il .desktop tutta la vita. zero sbattimenti, funziona alla grande!

p.s. sono senza servizio di snapshot perché non trovo pace/soluzione :asd: :muro:
 
Pubblicità
Pubblicità
Indietro
Top