BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

eindeutige Prozess ID herausfinden (pidfile)

Installation / Betrieb / Probleme unter Linux
Antworten
mad4schotter
Beiträge: 2
Registriert: Fr 24. Feb 2023, 09:41

eindeutige Prozess ID herausfinden (pidfile)

Beitrag von mad4schotter » Fr 24. Feb 2023, 11:00

Hallo,

ich möchte aus einem Skript eine Datei öffnen und bearbeiten.
Erst wenn die Datei geschlossen wurde, soll das Skript weitermachen.

Das geht ja ganz gut mir "--pidfile" oder "wait", aber nur wenn das der einzige Prozess von Libreoffice ist.
Wenn nebenbei eine andere Datei geöffnet ist (Writer, Calc, ...) klappt das nicht.

Es wird kein "pidfile" erzeugt und auch kein eigener Linuxprozess.

Wenn keine andere Libreofficedatei geöffnet ist:

Code: Alles auswählen

libreoffice /home/mad4schotter/datei.ods
ps aux | grep soffice | grep -v grep 
mad4schotter   .... /usr/lib/libreoffice/program/soffice.bin --calc /home/mad4schotter/datei.ods
Wenn eine andere Libreofficedatei geöffnet ist:

Code: Alles auswählen

libreoffice /home/mad4schotter/datei.ods
ps aux | grep soffice | grep -v grep 
mad4schotter   .... /usr/lib/libreoffice/program/soffice.bin --calc
Mir ist auch aufgefallen:
Writer öffnen
Calc öffnen

Code: Alles auswählen

ps aux | grep soffice | grep -v grep 
mad4schotter   .... /usr/lib/libreoffice/program/soffice.bin --writer
Calc öffnen
Writer öffnen

Code: Alles auswählen

ps aux | grep soffice | grep -v grep 
mad4schotter   .... /usr/lib/libreoffice/program/soffice.bin --calc
Wie kann ich einzelne Prozesse/Instanzen von Libreoffice steuern?

Vielen Dank!
Schönes Wochenende

Benutzeravatar
karolus
Beiträge: 2170
Registriert: Fr 10. Dez 2010, 10:01

Re: eindeutige Prozess ID herausfinden (pidfile)

Beitrag von karolus » Fr 24. Feb 2023, 15:21

Hallo
soffice kann schon mehrere Instanzen gleichzeitig…… aber nicht mehrmals auf der selben Benutzerkonfiguration lesen und schreiben
Daher müsstest du in deinem Script in etwa ausführen:

Code: Alles auswählen

soffice -env:UserInstallation=file:///home/mad4schotter/neu  /home/mad4schotter/datei.ods
Siehe auch soffice --help

In deinem Script müsstest dann in einer »Warteschleife« testen ob die zugehörige lock-Datei:
/home/mad4schotter/.~lock.datei.ods# noch existiert oder nicht.


Insgesamt sieht dein Arbeitsablauf aber merkwürdig aus… ??
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

mad4schotter
Beiträge: 2
Registriert: Fr 24. Feb 2023, 09:41

Re: eindeutige Prozess ID herausfinden (pidfile)

Beitrag von mad4schotter » Sa 25. Feb 2023, 06:11

Hallo,

herzlichen Dank! Das funktioniert perfekt.
Insgesamt sieht dein Arbeitsablauf aber merkwürdig aus… ??
Was meinst du damit? Vielleicht habe ich es unverständlich beschrieben.

Ich habe ein Skript mit dem ich ein Programm zur Zuschnittoptimierung (WoodWorks) steuere.

Code: Alles auswählen

#!/bin/bash

# Woodworks Batch-Dateien verarbeiten
# Schnittplan drucken oder Schnittplan-PDF erzeugen, Etiketten erstellen

# Libreoffice Vorlage auswählen

template=$(zenity --title "Vorlage auswählen" --file-selection --filename "/home/mad4schotter/vorlagen/" --file-filter "*.ots");

libreoffice --pidfile=/home/mad4schotter/woodworks/user/lopid --calc -env:UserInstallation=file:///home/mad4schotter/woodworks $template

# Skript abbrechen, wenn keine Vorlage gewählt wurde

if [ -z "$template" ];
then 
exit 0;
fi

# Batch-Datei auswählen

file=$(zenity --title "Datei auswählen" --file-selection --filename "/home/mad4schotter/" --file-filter "*.xml");

# Skript abbrechen, wenn keine Datei gewählt wurde

if [ -z "$file" ];
then 
exit 0;
fi

.....
Vorher hatte ich für "Libreoffice Vorlage auswählen" eine Abfrage der PID, das hat aber nur funktioniert, wenn Libreoffice noch nicht aktiv war.
Sobald Libreoffice vor dem Start des Skripts geöffnet war, wurde sofort nach Auswahl der Vorlage das nächte Dialogfenster geöffnet (weil eben keine Abfrage einer eindeutigen PID mehr möglich war).

Nochmals herzlichen Dank für deinen Tip!

Schönes Wochenende!

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten