Piszę skrypt bash, aby automatycznie odszyfrować plik do edycji i zaszyfrować go z powrotem po zamknięciu pliku. Typ pliku może być dowolny: zwykły tekst, dokument biurowy itp. Korzystam z Linux Mint z Mate.
Utknąłem: nie mogę niezawodnie wykryć, czy plik został zamknięty w aplikacji, aby skrypt mógł kontynuować szyfrowanie go z powrotem i usuwanie odszyfrowanej wersji.
Pierwsza wersja skryptu po prostu używała vima z plikami tekstowymi. Skrypt dzwonił do niego bezpośrednio i nie szedł dalej, dopóki vim nie został zamknięty. Teraz, gdy chcę to zrobić z innymi plikami, wypróbowałem następujące rzeczy:
xdg-open: kończy działanie natychmiast po wywołaniu aplikacji powiązanej z typem pliku. W ten sposób skrypt trwa i nie przynosi pożytku.
Zmodyfikowana funkcja xdg-open do wywoływania powiązanej aplikacji: uruchamia ją w bieżącym skrypcie, więc teraz widzę wyjście z programu. Działa tylko wtedy, gdy aplikacja jeszcze nie działała. Jeśli tak, nowy proces jest zakończony, a skrypt kontynuowany.
Więc próbuję teraz zobaczyć, jak jakiś plik został zamknięty w już działającej aplikacji. Obecnie eksperymentuje z pluma / gedit i inotifywait. To też nie działa - natychmiast po otwarciu pliku wykrywa zdarzenie CLOSE_NOWRITE, CLOSE.
Czy w ogóle można to wykryć bez konkretnych haków do różnych zastosowań? Być może jakieś haki X?
Dziękuję Ci.