3 votes

Est-ce que je peux enregistrer un fichier depuis la RAM ?

Pour être plus précis, voici la situation.

Je travaillais sur MyPaint à partir d'un document vierge et, après quelques heures pendant lesquelles je n'ai rien sauvegardé (bien sûr...), le programme s'est figé. Je ne l'ai pas fermé.

Dans le répertoire de sauvegarde automatique de MyPaint, le fichier est corrompu (seulement 1,4 ko).

Je me demandais donc si je pouvais extraire le fichier de la RAM (le processus est toujours en cours) et comment faire.

Merci.

2voto

Richard Points 21

Légèrement mieux que de sauvegarder la mémoire serait de demander au programme de sauvegarder votre travail pour vous.

Tout d'abord, obtenez le PID (identifiant de processus) du programme en cours d'exécution. Cela peut être fait à partir d'une ligne de commande avec la commande ps :

$ ps x
  PID TTY      STAT   TIME COMMAND
(... beaucoup de programmes usuels omis)
 3039 ?        Sl    40:59 /usr/lib/someprogram
...
30263 pts/8    R+     0:00 ps x

Disons que je veuille déclencher someprogram pour nettoyer et sauvegarder les fichiers, en supposant qu'il s'agisse d'un programme de qualité professionnelle (essayez chacun séquentiellement jusqu'à ce que l'un fonctionne) :

$ kill -HUP 3039        # déclencher la "déconnexion du terminal par raccrochage" du programme
                        #  (qui pourrait sauvegarder le fichier)
$ kill -INT 3039        # Interruption
$ kill -STOP 3039       # Arrêt
$ kill -CONT 3039       # Continuer

Une approche plus désespérée serait de sauvegarder la mémoire du programme dans un fichier core. Ensuite, au moins, quelqu'un familier avec les rouages internes de MyPaint pourrait le charger dans le débogueur et reconstruire les données pour une utilisation ultérieure. C'est "difficile" cependant et nécessitera des heures à des jours d'attention d'expert.

Pour générer un fichier core, essayez ceci. Les dumps core pourraient ne pas être activés dans la configuration de votre système.

$ kill -ABRT 3039       # abandon
$ kill -QUIT 3039       # quitter
$ kill -SEGV 3039       # accès mémoire illégal
$ kill -TRAP 3039

1voto

user286134 Points 21

Vous pouvez savoir que la RAM ne sauvegarde aucun fichier. Vous ne pourrez donc pas récupérer quoi que ce soit à partir de celle-ci. Je vous recommande de recommencer et de sauvegarder fréquemment la prochaine fois (ou de configurer un script pour sauvegarder automatiquement pour vous). Je suis vraiment désolé, mais il n'y a rien d'autre que vous puissiez faire pour le récupérer (autant que je sache).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X