J'ai une application en cours d'exécution appelée AppFS. Cette application a un système de fichiers ext2 juste attaché à la fin du fichier (il est positionné de sorte que le binaire de l'application existe dans une zone d'espacement de 1 Mo, suivi par les données ext2).Comment puis-je modifier le fichier d'application d'une application en cours d'exécution (sous Linux)?
Maintenant, FUSE est intégré dans le programme et j'ai réussi à extraire le système de fichiers des données de l'application dans un fichier temporaire afin que FUSE puisse le monter/l'utiliser.
Le problème que j'ai maintenant est d'écrire le fichier temporaire de retour dans le fichier d'application. Je reçois le "fichier texte occupé" sans doute parce que l'application s'est verrouillée et ne laissera pas les écritures se produire.
Y at-il un moyen de forcer le déverrouillage du fichier afin que je puisse y écrire des données? (Il est important de noter que je ne change pas la zone binaire de l'application - en réécrivant simplement le composant ext2.) Elle doit être déverrouillée sans avoir besoin d'autorisations root (déverrouillées par le même utilisateur qui a démarré l'application).
Je suppose que le problème ici est que l'utilisateur qui démarre l'application n'est pas nécessairement le même que celui qui possède le binaire. Avez-vous vraiment besoin d'intégrer les données 'ext2' dans le binaire? – ereOn
Fractionnez ext2 du binaire ou lors de l'exécution de l'exécutable complet (avec ext2 attaché) ou extrayez simplement l'exécutable dans un fichier, exécutez-le et utilisez l'autre fichier exécutable (avec ext2 attaché) comme fichier avec le système de fichiers. – INS
La séparation entre la partie exécutable et le composant ext2 peut ne pas être évidente pour le système d'exploitation. Comment saurait-il prendre un verrou byterange sur le fichier? Il doit verrouiller la partie exécutable, car elle peut être supprimée de la mémoire lorsque la RAM est faible. – MSalters