Notizie: se possiedi un dispositivo Android, prova Firefox per Android, un browser scattante e dinamico per navigare in ambiente mobile.

Autore Topic: [Risolto]Chiudere profilo firefox specifico da terminale  (Letto 641 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline iogurumi

  • Post: 19
Ciao a tutti, premetto che lavoro su Linux Mint. Tempo fa sono stata aiutata per sistemare un mio script che apre un profilo di firefox, es. 01, gli fa fare determinate ricerche online, poi lo chiude, apre il profilo 02, che fa determinate ricerche, chiude 02 e apre il profilo 03 e così via per una trentina di profili.
Il problema è che per chiudere il profilo il comando che uso nello script è
Codice: [Seleziona]
wmctrl -c "Firefox" -x "Navigator.Firefox" che non chiude solo quel profilo aperto, ma anche tutti gli altri.
Succede quindi che spesso mi trovo a lavorare sullo spazio di lavoro 1 con il mio profilo personale, mentre nello spazio di lavoro 2 avvio lo script, ma questo non mi aiuta perché al momento del comando
Codice: [Seleziona]
wmctrl -c "Firefox" -x "Navigator.Firefox" viene chiuso anche il mio profilo personale con cui sto lavorando.

Mi chiedevo se ci fosse un modo per chiudere solo un profilo specifico, un comando da terminale che possa quindi essere inserito nello script in questione.
Idee?  :lol: Vi ringrazio per qualsiasi suggerimento possiate darmi, come sempre!
« Ultima modifica: 13 Marzo 2023 22:02:25 da iogurumi »

Offline fabrixx

  • Post: 5888
Re:Chiudere profilo firefox specifico da terminale
« Risposta #1 il: 11 Marzo 2023 22:49:16 »
Ciao

L'unica cosa che a me viene in mente è di utilizzare per lo script la versione Flatpak di Firefox e mantenere la tua attuale per uso personale in modo da poter aprire due Firefox indipendenti contemporaneamente (la prima volta ti farà installare svariate runtime e non è semplicissimo).

Potrebbe funzionare anche con la versione Appimage (di più facile installazione, la scarichi dai i permessi di esecuzione e ci clicchi sopra) ma non ho testato la cosa...

O forse agendo sullo script  :? anche se non so come si potrebbe chiudere un profilo e mantenerne attivo un altro sulla stessa installazione ma tutto può essere...



Offline Iceberg

  • Moderatore
  • Post: 9022
Re:Chiudere profilo firefox specifico da terminale
« Risposta #2 il: 12 Marzo 2023 00:42:06 »
Sembra che non sia possibile chiudere uno specifico profilo da terminale, probabilmente sarà possibile avendo conoscenze che non ho.

Potrebbe però esserci un metodo alternativo "semplice".
Avviando uno specifico profilo con la meno nota e usata opzione: il comando -profile...

Citazione
C'è anche:
Codice: [Seleziona]
firefox -profile [/percorso/completo/alla/cartella/del/profilo]Utile se non si conosce il nome del profilo ma si conosce dove si trova. Scavalca il file profiles.ini.

...quel percorso viene associato univocamente al processo che gestisce quel profilo.
Di conseguenza questo comando:
Codice: [Seleziona]
pkill -f "/percorso/completo/alla/cartella/del/profilo"Chiude solamente quello specifico profilo.

È possibile integrare quanto sopra nel tuo script?


Offline iogurumi

  • Post: 19
Re:Chiudere profilo firefox specifico da terminale
« Risposta #3 il: 12 Marzo 2023 10:58:35 »
Wow grazie ragazzi mi avete dato spunti interessantissimi. @Iceberg provo prima di tutto il tuo suggerimento, se non va sperimento anche il tuo @fabrixx, me lo lascio come ultima opzione perché mi sembra più complicato e io non sono un geniaccio ^_^"

Offline iogurumi

  • Post: 19
Re:Chiudere profilo firefox specifico da terminale
« Risposta #4 il: 12 Marzo 2023 11:08:18 »
Intanto sto provando i comandi da terminale.

Codice: [Seleziona]
firefox -profile [/percorso/completo/alla/cartella/del/profilo]

Questo funziona.

Codice: [Seleziona]
pkill -f "/percorso/completo/alla/cartella/del/profilo"

Questo invece no, non chiude nulla, forse invece di -f deve esserci altro? Ho provato anche senza virgolette ma nulla di fatto.
Ho visto l'help di pkill ma non ho trovato nulla che potesse fare al caso mio, almeno per quanto ne possa capire io... ho visto che -n corrisponde a chiudere il più recente aperto, ma l'ho provato e non funziona, mi dà questo errore
Codice: [Seleziona]
pkill: killing pid 44633 failed: Operazione non permessa


EDIT: CI SONO QUASI  :D

Nello script ho inserito il comando
Codice: [Seleziona]
firefox -profile percorso e apre il profilo specificato, poi con
Codice: [Seleziona]
pkill -n firefox viene chiuso solo questo e il mio personale rimane aperto finalmente *_*
Ora rimane un ultimo problema che non avevo calcolato... lo script continua il suo lavoro aprendo gli altri profili sempre con
Codice: [Seleziona]
firefox -profile percorso , il problema è che me li apre nello spazio di lavoro attivo (quindi quello in cui sto lavorando col mio profilo personale) disturbandomi  :lol:
C'è un modo per aprire questi profili nel secondo spazio di lavoro? Per ora ho "risolto" mettendo in primo piano il mio profilo personale, ma mi piacerebbe che lo script lavorasse nel secondo spazio di lavoro, non so se è fattibile.
« Ultima modifica: 12 Marzo 2023 11:49:59 da iogurumi »

Offline Iceberg

  • Moderatore
  • Post: 9022
Re:Chiudere profilo firefox specifico da terminale
« Risposta #5 il: 12 Marzo 2023 13:35:15 »
A me pkill - f "percorso" funziona.
Assicurati che il percorso sia identico, -profile non considera il file profiles.ini, in pratica è il percorso che diventa il nome del profilo e -f riesce ad associare il percorso al processo che lo gestisce.
Prova aggiungendo -no-remote.

Codice: [Seleziona]
firefox -no-remote -profile [/percorso/completo/alla/cartella/del/profilo]
Codice: [Seleziona]
pkill -f "/percorso/completo/alla/cartella/del/profilo"

Offline iogurumi

  • Post: 19
Re:Chiudere profilo firefox specifico da terminale
« Risposta #6 il: 13 Marzo 2023 22:01:51 »
Non so perché, a me non va  :lol:
Però funziona con
Codice: [Seleziona]
pkill -n firefoxQuindi ho comunque risolto così, ti ringrazio per le dritte mi hai fatto imparare altri comandi utili che non conoscevo  :D

Offline Iceberg

  • Moderatore
  • Post: 9022
Re:[Risolto]Chiudere profilo firefox specifico da terminale
« Risposta #7 il: 14 Marzo 2023 12:42:06 »
Bene così.
Il profilo è sempre lo stesso e la cartella è sempre quella, ma se avviato con -P o con -ProfileManager, tra il percorso e il processo c'è una barriera. Evidentemente anche nel caso di -profile, a volte, il rapporto tra percorso e processo non è diretto.
Debbono entrare in gioco altre variabili derivanti dal tipo di installazione e dal sistema che gestisce i programmi.

Offline iogurumi

  • Post: 19
Re:[Risolto]Chiudere profilo firefox specifico da terminale
« Risposta #8 il: 15 Marzo 2023 13:03:31 »
Si impara sempre qualcosa di nuovo  :D

Offline fabrixx

  • Post: 5888
Re:[Risolto]Chiudere profilo firefox specifico da terminale
« Risposta #9 il: 15 Marzo 2023 23:53:27 »
Davvero molto interessante.

Mi stavo focalizzando sul comando:
Codice: [Seleziona]
# pkill -f "command_name"
Kill all processes which match their full command instead of just the process name

Codice: [Seleziona]
pkill -f "/percorso/completo/alla/cartella/del/profilo" anche a me chiude effettivamente selettivamente quel profilo
La cosa che non riesco a capire è dove stia il comando all'eseguibile firefox, quello mi sembra solo un percorso

Cosi ho fatto un po di prove con un profilo nuovo.
Ho notato che
Codice: [Seleziona]
pkill -f "/home/fabrixx/.mozilla/firefox/cjlv0els.default"
ha lo stesso effetto di

Codice: [Seleziona]
$ pkill -f "/cjlv0els.default"
Esaminando i processi attivi   forse interpreta cjlv0els.default come un comando  (/percorso/cartella/comando) :shock:





Offline Iceberg

  • Moderatore
  • Post: 9022
Re:[Risolto]Chiudere profilo firefox specifico da terminale
« Risposta #10 il: 16 Marzo 2023 14:24:38 »
Interessante.
Letto il tuo messaggio ho fatto un'altra prova, cercando di arrivare a uno schema.

Aprendo con:
Codice: [Seleziona]
firefox -profile [/percorso/completo/alla/cartella/del/ProfiloUno]Chiudendo con:
Codice: [Seleziona]
pkill -f "/percorso/completo/alla/cartella/del/ProfiloUno"Chiude selettivamente solo quel profilo.
E.
Codice: [Seleziona]
pkill -f "ProfiloUno"Non ha effetto.

Aprendo con:
Codice: [Seleziona]
firefox -P ProfiloUnoChiudendo con:
Codice: [Seleziona]
pkill -f "/percorso/completo/alla/cartella/del/ProfiloUno"Non ha effetto.
Ma.
Codice: [Seleziona]
pkill -f "ProfiloUno"Chiude selettivamente solo quel profilo.

Dipende dal fatto che venga letto il file profiles.ini e da cosa è scritto in questo file.
Con -P questo file viene letto, con -profile no.
Potrebbero esserci altre variabili; e nel caso si voglia tenere aperti più profili in contemporanea è opportuno aggiungere -no-remote.
Esempio di file profiles.ini:

Codice: [Seleziona]
[General]
StartWithLastProfile=1
Version=2

[Profile1]
Name=ProfiloUno
IsRelative=1
Path=jfuh36ehs.ProfiloUno

[Profile2]
Name=ProfiloDue
IsRelative=0
Path=/percorso/completo/alla/cartella/del/ProfiloDue

Almeno nel mio caso se chiude con Name non chiude con Path e viceversa.
IsRelative.
Se =0 profilo in una cartella personale dell'utente.
Se =1 profilo nella cartella di default.
Ma per il funzionamento di "pkill -f" che sia 0 o 1 è ininfluente.

@fabrixx, ti torna?
@iogurumi, prova se la variante con nome profilo ti funziona, apertura con "-P Name" chiusura con  "-f Name ".

« Ultima modifica: 17 Marzo 2023 00:48:09 da Iceberg »

Offline fabrixx

  • Post: 5888
Re:[Risolto]Chiudere profilo firefox specifico da terminale
« Risposta #11 il: 17 Marzo 2023 00:21:35 »
Io le mie prove le avevo fatte aprendo i profili con
Codice: [Seleziona]
firefox -profile "/percorso/completo/alla/cartella/del/Profilo"
Ho provato con

Codice: [Seleziona]
firefox -profile nomeprofiloMa ricevo un popup che mi informa che il profilo è inaccessibile

se lo lascio vuoto ricevo un
Codice: [Seleziona]
Error: argument --profile requires a path  quindi vuole il percorso completo.

A te invece lo apre anche senza il percorso



Ho provato con
Codice: [Seleziona]
firefox -P nomeprofilo
Confermo che:
Codice: [Seleziona]
pkill -f "/percorso/completo/alla/cartella/del/Profilo"non ha effetto

Codice: [Seleziona]
pkill -f "nomeprofilo"Chiude selettivamente solo quel profilo.


La cosa che non capisco è che nel caso del profilo default-nightly
Codice: [Seleziona]
firefox -P default-nightly
firefox si chiude sia con
Codice: [Seleziona]
pkill -f "default-nightly"
ma anche con
Codice: [Seleziona]
pkill -f "default"
credo che agisca tipo ricorsivamene


pkill chiude quello che apri

apro con>nomeprofilo -------  kill con>nomeprofilo   
apro con>/cartella/del/profilo ---------- kill con>/cartella/del/profilo  (percorso completo o nome cartella)

Lavora piu a livello superiore non è legato a Firefox.
Ad esempio
Codice: [Seleziona]
pkill -f "web"
invece che chiudermi il profilo web mi ha fatto crashare il processo "web"legato al browser GNOME Web che avevo aperto per poter scrivere qui e lavorare su Firefox.

Il mio profile.ini è un tale casino che basta a dir la verità...potrebbe essere una causa.

comunque dovrei essere a letto da un ora e non so neppure bene cosa ho scritto, conto di ristudiarmi la cosa con piu calma davvero

Offline Iceberg

  • Moderatore
  • Post: 9022
Re:[Risolto]Chiudere profilo firefox specifico da terminale
« Risposta #12 il: 17 Marzo 2023 00:49:09 »
Accidenti.

firefox -profile ProfiloUno
Mio errore di copia incolla.  :oops:

Come avevo scritto nei messaggi precedenti intendevo:
Codice: [Seleziona]
firefox -profile [/percorso/completo/alla/cartella/del/ProfiloUno]Vado a correggere!

La cosa che non capisco è che nel caso del profilo default-nightly
Codice: [Seleziona]
firefox -P default-nightly
firefox si chiude sia con
Codice: [Seleziona]
pkill -f "default-nightly"
ma anche con
Codice: [Seleziona]
pkill -f "default"
Forse che quello specifico profilo ha anche, dopo path, la riga "Default=1"?

Edit.
Forse che quello specifico profilo ha anche, dopo path, la riga "Default=1"?
Sembra di no. Nel mio caso -f "default" non chiude nulla, compreso il profilo etichettato come default.

« Ultima modifica: 17 Marzo 2023 01:01:50 da Iceberg »

0 Utenti e 1 Visitatore stanno visualizzando questo topic.