Comment on libère un fichier suite à plantage ?

Le
Nina Popravka
Un poste bosse sur un fichier, il plante, laisse le fichier ouvert, et
ensuite ceux qui veulent l'ouvrir se prennent un erreur -54.
Evidemment en redémarrant le serveur les choses rentrent dans l'ordre.
Classique.
Comment je peux refermer le fichier sans redémarrer ?
Merci :-)
--
Nina
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
patpro ~ Patrick Proniewski
Le #448005
In article Nina Popravka
Un poste bosse sur un fichier, il plante, laisse le fichier ouvert, et
ensuite ceux qui veulent l'ouvrir se prennent un erreur -54.
Evidemment en redémarrant le serveur les choses rentrent dans l'ordre.
Classique.
Comment je peux refermer le fichier sans redémarrer ?
Merci :-)


en AFP j'imagine... aucune idée. Normalement on tue le process qui
maintient le fichier ouvert, mais dans le cas présent le process
(client) est déjà mort, et le lock doit être dans le serveur.

désolé, j'ai pas de piste.

patpro

--
http://www.patpro.net/

Nina Popravka
Le #448004
On Wed, 09 May 2007 08:42:22 +0200, patpro ~ Patrick Proniewski

et le lock doit être dans le serveur.
Manifestement.

Ce qui est logique ; si on lui dit pas que le fichier a été refermé,
il va pas le deviner...

désolé, j'ai pas de piste.
Ouinnnnnnn :-(

Remarque, ASIP ne savait pas le faire non plus (à moins que Laurent
n'infirme) ;->
--
Nina

laurent.pertois
Le #448003
Nina Popravka
Comment je peux refermer le fichier sans redémarrer ?


Tu as essayé de relancer le service ?

Sinon, lsof avec un grep sur le nom du fichier pourrait te donner le nom
du processus qui le verrouille, je pense.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Nina Popravka
Le #448000
On Wed, 9 May 2007 10:05:10 +0200,
(Laurent Pertois) wrote:

Tu as essayé de relancer le service ?
L'équivalent du service serveur, tu veux dire ? Ben non, parce que je

voudrais n'agir que sur le fichier problématique sans déconnecter tout
le monde...

Sinon, lsof avec un grep sur le nom du fichier pourrait te donner le nom
du processus qui le verrouille, je pense.
Sûrement, mais grep ==> regexp, et Nina totalement incompatible avec

regexp.
--
Nina

laurent.pertois
Le #447999
Nina Popravka
Remarque, ASIP ne savait pas le faire non plus (à moins que Laurent
n'infirme) ;->


Nan, je confirme, comme tu le dis, s'il ne sait qu'il a été refermé il
ne va pas deviner seul :-D

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Nina Popravka
Le #447998
On Wed, 9 May 2007 10:42:37 +0200,
(Laurent Pertois) wrote:

Nan, je confirme, comme tu le dis, s'il ne sait qu'il a été refermé il
ne va pas deviner seul :-D


Je voulais dire qu'il n'y avait (et n'y a apparemment toujours pas) de
dispositif permettant de fermer le fichier, contrairement à d'autres
OS de ma connaissance ;->
--
Nina

laurent.pertois
Le #445038
Nina Popravka
Tu as essayé de relancer le service ?
L'équivalent du service serveur, tu veux dire ? Ben non, parce que je

voudrais n'agir que sur le fichier problématique sans déconnecter tout
le monde...


Voui.

Sinon, lsof avec un grep sur le nom du fichier pourrait te donner le nom
du processus qui le verrouille, je pense.
Sûrement, mais grep ==> regexp, et Nina totalement incompatible avec

regexp.


Meuh non, un truc du style :

# lsof | grep -i "nom du fichier"

est amplement suffisant et ne nécessite pas un regexp de la morkitu...

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.


laurent.pertois
Le #445037
Nina Popravka
Je voulais dire qu'il n'y avait (et n'y a apparemment toujours pas) de
dispositif permettant de fermer le fichier, contrairement à d'autres
OS de ma connaissance ;->


Je suis d'accord.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Anonyme
Le #444875
patpro ~ Patrick Proniewski
en AFP j'imagine... aucune idée. Normalement on tue le process qui
maintient le fichier ouvert, mais dans le cas présent le process
(client) est déjà mort, et le lock doit être dans le serveur.


Le client est mort, mais le process du client peut-être pas.

en faisant un lsof rooté greppé (ça c'est du bon français), on devrait
pouvoir trouver le process et le tuer...

sur le serveur
sudo lsof |grep <Lefichier>

récupérer le pid (deuxième colonne)

tuer par un kill -9 <NumPID>


Ceci devrait marcher en une seule ligne (si il n'y a qu'un process sur
le fichier) :

kill -9 $(echo $(sudo lsof |grep <Lefichier>) | cut -d" " -f2)

Pour <Lefichier>, juste le nom du fichier devrait suffir... (sans les <
)


--
Anonyme ( jayce <@> mosx.net )
********* MosX.net (avec un put§@#* de problème DNS sur le domaine mosx.net)

Nina Popravka
Le #444866
On Wed, 9 May 2007 16:58:20 +0200, (Anonyme) wrote:

Le client est mort, mais le process du client peut-être pas.
en faisant un lsof rooté greppé (ça c'est du bon français), on devrait
pouvoir trouver le process et le tuer...


La notion de fichier ouvert sans que ça soit lié à un process, ça
n'existe pas, pour MacOSX ?
Un truc genre un flag "open" tout bête ?
--
Nina

Publicité
Poster une réponse
Anonyme