![]() |
Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
![]() |
Guest_macmagna_* |
![]()
Message
#31
|
Guests ![]() |
Le chemin se retrouve en principe dans $TMPDIR un echo $TMPDIR dans le premier terminal disponible devrait confirmer cela. Dans ce cas, on doit pouvoir modifier le script de départ comme ceci afin de déplacer sur le RAMDisk à la fois le dossier de cache et le dossier des éléments temporaires: Code diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` mkdir /Volumes/RAMDisk/Caches rm -r ~/Library/Caches ln -s /Volumes/RAMDisk/Caches ~/Library/Caches mkdir /Volumes/RAMDisk/Temp rm -r $TMPDIR ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} Le RAMDisk à été porté du coup à 4Go pour garder plus de marge avec les fichiers temporaires. Ce message a été modifié par macmagna - 5 May 2014, 16:40. |
|
|
![]()
Message
#32
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Le chemin se retrouve en principe dans $TMPDIR un echo $TMPDIR dans le premier terminal disponible devrait confirmer cela. Dans ce cas, on doit pouvoir modifier le script de départ comme ceci afin de déplacer sur le RAMDisk à la fois le dossier de cache et le dossier des éléments temporaires: Code diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` mkdir /Volumes/RAMDisk/Caches rm -r ~/Library/Caches ln -s /Volumes/RAMDisk/Caches ~/Library/Caches mkdir /Volumes/RAMDisk/Temp rm -r $TMPDIR ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} Le RAMDisk à été porté du coup à 4Go pour garder plus de marge avec les fichiers temporaires. J'essaierai demain, j'ai les mirettes qui tombes ![]() |
|
|
![]()
Message
#33
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 969 Inscrit : 26 Jan 2011 Lieu : Pollachius virens Membre no 164 083 ![]() |
Attention, si on lance le script avec sudo, c'est à dire qu'on change l'id de l'utilisateur par celui de root, $TMPDIR sera vide.
-------------------- MBP 2017 15" avec clavier pourri et touchbar inutile
|
|
|
Guest_macmagna_* |
![]()
Message
#34
|
Guests ![]() |
Attention, si on lance le script avec sudo, c'est à dire qu'on change l'id de l'utilisateur par celui de root, $TMPDIR sera vide. Non, a priori on n'a pas besoin de sudo car le dossier "T" semble être créé comme un dossier utilisateur. Les commandes fonctionnent lorsqu'on les tape dans le Terminal, reste à voir ce qui se passe lorsqu'elles sont incluses dans un script qui se lance au démarrage. Je les ai ajouté dans mon script personnel de RAMDisk, je verrai ce qui se passe au re-démarrage demain matin... A noter le "${TMPDIR%/}" dans la dernière ligne pour supprimer le dernier slash (/) du chemin renvoyé par $TMPDIR qui provoque sinon une erreur. Ce message a été modifié par macmagna - 5 May 2014, 17:45. |
|
|
![]()
Message
#35
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Attention, si on lance le script avec sudo, c'est à dire qu'on change l'id de l'utilisateur par celui de root, $TMPDIR sera vide. Non, a priori on n'a pas besoin de sudo car le dossier "T" semble être créé comme un dossier utilisateur. Les commandes fonctionnent lorsqu'on les tape dans le Terminal, reste à voir ce qui se passe lorsqu'elles sont incluses dans un script qui se lance au démarrage. Je les ai ajouté dans mon script personnel de RAMDisk, je verrai ce qui se passe au re-démarrage demain matin... A noter le "${TMPDIR%/}" dans la dernière ligne pour supprimer le dernier slash (/) du chemin renvoyé par $TMPDIR qui provoque sinon une erreur. En dirigeant ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} On créait un lien symbolique "tmp" qui pointe sur le RamDisk mais tout ce qui est dans le dossier "T" n'est pas redirigé . Pourquoi ne pas avoir rediriger "T" je comprend pas. "tmp" dans " T" est un dossier qui n'existe pas a l'origine, pourquoi l'avoir créé ? Ce message a été modifié par Kalm - 5 May 2014, 18:52. |
|
|
![]()
Message
#36
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 3 606 Inscrit : 10 Feb 2011 Membre no 164 526 ![]() |
Eh, les gars, je vois bien les commandes T et vous lis avec attention.
Mais si on revient à l'appli PowerApp mentionnée dans la news par Lionel, que je me suis procuré pour voir… j'ai un peu de mal à piger comment m'en servir. J'ai un SSD de 1 To et 32 Go de RAM (iMac). Bon. Je crée un RamDisk de 4 Go, admettons. Soit c'est pour une utilisation temporaire (A), soit permanente (B) A - je bosse sur un fichier Photoshop. Je le mets dedans et je bosse dessus ? Quand j'ai fini mon taf, je le sors de l'image disque et basta ? B - j'ai cru comprendre que l'un des intérêts d'un RamDisk est de prolonger la vie des SSD. Bon. Mais à propos de quels fichiers ? Des caches ? Si oui, je fais quoi avec ces fichiers caches ? Faut créer un lien symbolique dans leur place originelle (genre avec SymbolicLinker) et déplacer l'écriture de ces fichiers dans le RamDisk ? Quelqu'un peut expliquer un exemple concret ? Je vois que SartMatt dit s'en servir pour le cache de FireFox… comment faire ça avec PowerApp, sans avoir recours au Terminal, ou, si c'est tout de même indispensable quelle est la procédure ? Merci pour les profanes. ![]() |
|
|
Guest_macmagna_* |
![]()
Message
#37
|
Guests ![]() |
J'ai testé En dirigeant ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} On créait un lien symbolique "tmp" qui pointe sur le RamDisk mais tout ce qui est dans le dossier "T" n'est pas redirigé . Pourquoi ne pas avoir rediriger "T" je comprend pas. "tmp" dans " T" est un dossier qui n'existe pas a l'origine, pourquoi l'avoir créé ? Le code: Code ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} Crée un lien symbolique à l'emplacement "${TMPDIR%/}" qui pointe vers le dossier "/Volumes/RAMDisk/Temp". "${TMPDIR%/}" représente l'emplacement du dossier utilisateur temporaire, en d'autres termes, ton dossier "T". C'est donc bien ton dossier "T" qui pointe désormais vers "/Volumes/RAMDisk/Temp". Tout ce qui sera écrit vers ce dossier sera re-dirigé vers le dossier "/Volumes/RAMDisk/Temp". Je le teste chez moi depuis quelques heures et cela fonctionne parfaitement. Le fait de nommer le dossier de re-direction "Temp" au lieu de "T" ne change rien, j'aurai pu écrire à la place: Code ln -s /Volumes/RAMDisk/LeDossierTdeKalm ${TMPDIR%/} et obtenir le même résultat (à part qu'il aurait fallu créer préalablement un dossier "/Volumes/RAMDisk/LeDossierTdeKalm"). Eh, les gars, je vois bien les commandes T et vous lis avec attention. Mais si on revient à l'appli PowerApp mentionnée dans la news par Lionel, que je me suis procuré pour voir… j'ai un peu de mal à piger comment m'en servir. J'ai un SSD de 1 To et 32 Go de RAM (iMac). Bon. Je crée un RamDisk de 4 Go, admettons. Soit c'est pour une utilisation temporaire (A), soit permanente (B) A - je bosse sur un fichier Photoshop. Je le mets dedans et je bosse dessus ? Quand j'ai fini mon taf, je le sors de l'image disque et basta ? B - j'ai cru comprendre que l'un des intérêts d'un RamDisk est de prolonger la vie des SSD. Bon. Mais à propos de quels fichiers ? Des caches ? Si oui, je fais quoi avec ces fichiers caches ? Faut créer un lien symbolique dans leur place originelle (genre avec SymbolicLinker) et déplacer l'écriture de ces fichiers dans le RamDisk ? Quelqu'un peut expliquer un exemple concret ? Je vois que SartMatt dit s'en servir pour le cache de FireFox… comment faire ça avec PowerApp, sans avoir recours au Terminal, ou, si c'est tout de même indispensable quelle est la procédure ? Merci pour les profanes. ![]() L'intérêt des lignes de commandes que nous évoquons ici est de ne pas avoir à acheter et utiliser d'application de type PowerApp ou équivalent pour créer un RAM disk... L'intérêt d'acheter et d'utiliser une application de type PowerApp ou équivalent est de ne pas avoir à utiliser des lignes de commandes pour créer un RAM disk... Choisit ton camp mais ne mélange pas les deux, au risque de mettre un gros bazar dans ton système. |
|
|
![]()
Message
#38
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Alors la je comprend vraiment pas macmagna
Je tape Code mkdir /Volumes/RAMDisk/Temp rm -r $TMPDIR ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} Donc il creait le fichier temp dans la RamDisk mais le lien Symbolique "temp" et dans "T" il ne remplace pas ce dossier. Du coup tout ce que j'envois en temporaire reste dans "T" Y a un truc qui m'échappe, j'en perd mon Latin, bon je l ai jamais parlé non plus ^^ Ce message a été modifié par Kalm - 5 May 2014, 20:10. |
|
|
![]()
Message
#39
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 3 606 Inscrit : 10 Feb 2011 Membre no 164 526 ![]() |
L'intérêt des lignes de commandes que nous évoquons ici est de ne pas avoir à acheter et utiliser d'application de type PowerApp ou équivalent pour créer un RAM disk... L'intérêt d'acheter et d'utiliser une application de type PowerApp ou équivalent est de ne pas avoir à utiliser des lignes de commandes pour créer un RAM disk... Choisit ton camp mais ne mélange pas les deux, au risque de mettre un gros bazar dans ton système. Merci pour ces précisions. J'avais bien compris cette alternative dès le départ. Mais cela ne répond pas à mes questions. ![]() |
|
|
![]()
Message
#40
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
L'intérêt des lignes de commandes que nous évoquons ici est de ne pas avoir à acheter et utiliser d'application de type PowerApp ou équivalent pour créer un RAM disk... L'intérêt d'acheter et d'utiliser une application de type PowerApp ou équivalent est de ne pas avoir à utiliser des lignes de commandes pour créer un RAM disk... Choisit ton camp mais ne mélange pas les deux, au risque de mettre un gros bazar dans ton système. Merci pour ces précisions. J'avais bien compris cette alternative dès le départ. Mais cela ne répond pas à mes questions. ![]() Le problème avec une App comme PowerMa,, est qu'elle n'inclue pas de menu déroulant ou autre pour choisir le cache ou le temp que tu voudras rediriger vers le RamDisk, du coup t' es obliger de passer par les lignes commande En gros t'as acheté un RamDisk avec option persistent, c'est tout. D'ou entre autre mon ton cavalier en debut News |
|
|
Guest_macmagna_* |
![]()
Message
#41
|
Guests ![]() |
Alors la je comprend vraiment pas macmagna Je tape Code mkdir /Volumes/RAMDisk/Temp rm -r $TMPDIR ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} Donc il creait le fichier temp dans la RamDisk mais le lien Symbolique "temp" et dans "T" il ne remplace pas ce dossier. Du coup tout ce que j'envois en temporaire reste dans "T" Y a un truc qui m'échappe, j'en perd mon Latin, bon je l ai jamais parlé non plus ^^ Quand tu tapes "rm -r $TMPDIR", tu supprimes normalement ton dossier "T", il n'existe plus. Commence par ça et regarde si ton dossier "T" est effectivement détruit. Ensuite, quand tu tapes "ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/}" tu crée un lien symbolique à la même place ("/private/var/folders/cf/frl8mffs4qgcnntfrxkxpkkc0000gn/T/") qui pointe (re-dirige) vers le dossier du RAMDisk "/Volumes/RAMDisk/Temp". Si tu tapes la dernière commande alors que le lien est déjà créé, un deuxième lien symbolique "Temp" est créé dans "/Volumes/RAMDisk/Temp" mais il est invalide. Deux choses à vérifier: 1) dans le Terminal, "echo $TMPDIR" renvoie "/private/var/folders/cf/frl8mffs4qgcnntfrxkxpkkc0000gn/T/". 2) avec le Finder, va dans "/private/var/folders/cf/frl8mffs4qgcnntfrxkxpkkc0000gn/" et "Lis les Informations" sur ton dossier "T", ce doit être un Alias et non un Dossier. Si ce n'est pas le cas, alors on a encore du boulot ![]() |
|
|
![]()
Message
#42
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 969 Inscrit : 26 Jan 2011 Lieu : Pollachius virens Membre no 164 083 ![]() |
Deux choses à vérifier: 1) dans le Terminal, "echo $TMPDIR" renvoie "/private/var/folders/cf/frl8mffs4qgcnntfrxkxpkkc0000gn/T/". 2) avec le Finder, va dans "/private/var/folders/cf/frl8mffs4qgcnntfrxkxpkkc0000gn/" et "Lis les Informations" sur ton dossier "T", ce doit être un Alias et non un Dossier. Si ce n'est pas le cas, alors on a encore du boulot ![]() Petite précision : echo $TMPDIR renvoie /var/folders/cf/..../T/ et /var est un lien symbolique pour /private/var : Code lrwxr-xr-x@ 1 root wheel 11 5 oct 2013 /var -> private/var Ce qui ne doit pas poser de problème en principe pour le fonctionnement du script EDIT : Attention ! J'ai testé la suppression de $TMPDIR afin de le recréer sur un Ramdisk. J'ai été confronté au problème décrit sur cette page : http://kieranhealy.org/blog/archives/2014/...nservicesagent/ La création du répertoire com.apple.IconServices a réglé le problème. Ce message a été modifié par yponomeute - 5 May 2014, 21:42. -------------------- MBP 2017 15" avec clavier pourri et touchbar inutile
|
|
|
![]()
Message
#43
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Quand tu tapes "rm -r $TMPDIR", tu supprimes normalement ton dossier "T", il n'existe plus. Commence par ça et regarde si ton dossier "T" est effectivement détruit. Nope, il le detruit pas, renvoie "override r--r--r-- X/staff for /var/folders/cf/frl8mffs4qgcnntfrxkxpkkc0000gn/T//qt_menu.nib/classes.nib? " il le detruit qu'avec la commande "rm -r /private/var/folders/cf/frl8mffs4qgcnntfrxkxpkkc0000gn/T" Ensuite, quand tu tapes "ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/}" tu crée un lien symbolique à la même place ("/private/var/folders/cf/frl8mffs4qgcnntfrxkxpkkc0000gn/T/") qui pointe (re-dirige) vers le dossier du RAMDisk "/Volumes/RAMDisk/Temp". Du coup il creait un lien "Temp" ........./T/Temp Si tu tapes la dernière commande alors que le lien est déjà créé, un deuxième lien symbolique "Temp" est créé dans "/Volumes/RAMDisk/Temp" mais il est invalide. Ensuite le lien "Temp" dans "T" redirige correctement vers le RamDisk, mais par défaut tout reste dans "T" Deux choses à vérifier: 1) dans le Terminal, "echo $TMPDIR" renvoie "/private/var/folders/cf/frl8mffs4qgcnntfrxkxpkkc0000gn/T/". 2) avec le Finder, va dans "/private/var/folders/cf/frl8mffs4qgcnntfrxkxpkkc0000gn/" et "Lis les Informations" sur ton dossier "T", ce doit être un Alias et non un Dossier. Si ce n'est pas le cas, alors on a encore du boulot ![]() Nope, ca reste Type "dossier" ![]() Ce message a été modifié par Kalm - 5 May 2014, 22:36. |
|
|
![]()
Message
#44
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
j ai compris grace au renvoie, j ai vire"nib" dans "T"
Maintenant "T" pointe vers le RamDisk. ;-) ![]() Ce message a été modifié par Kalm - 5 May 2014, 22:48. |
|
|
Guest_macmagna_* |
![]()
Message
#45
|
Guests ![]() |
Ce matin j'ai démarré avec le script modifié qui génère le RAMDisk et exporte $TMPDIR dessus mais j'ai été confronté à un problème: certains icônes dans mon Dock avaient disparu. C'est peut être en rapport avec le problème relevé par yponomeute mais la création d'un dossier "com.apple.IconServices" dans "Temp" n'a rien réglé sur le moment, aussi j'en suis revenu à la configuration précédente et j'ai laissé "T" à sa place originale.
[Edit] La consultation des logs systèmes de démarrage dans la Console, confirme que certains services, dont IconServices, ont besoin du dossier tmp avant le log-in du premier utilisateur, ce qui est logique. Il faudrait donc prévoir un script qui restaure le dossier T avant extinction de la machine puis qui l'exporte (et non le supprime) sur le RAM disk lors du log-in. La suppression du lien symbolique vers T lors de l'extinction de la machine pourrait suffire à régler le problème, le dossier étant automatiquement re-créé par le système s'il est absent au démarrage. Ce message a été modifié par macmagna - 6 May 2014, 07:09. |
|
|
![]()
Message
#46
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Ce matin j'ai démarré avec le script modifié qui génère le RAMDisk et exporte $TMPDIR dessus mais j'ai été confronté à un problème: certains icônes dans mon Dock avaient disparu. C'est peut être en rapport avec le problème relevé par yponomeute mais la création d'un dossier "com.apple.IconServices" dans "Temp" n'a rien réglé sur le moment, aussi j'en suis revenu à la configuration précédente et j'ai laissé "T" à sa place originale. [Edit] La consultation des logs systèmes de démarrage dans la Console, confirme que certains services, dont IconServices, ont besoin du dossier tmp avant le log-in du premier utilisateur, ce qui est logique. Il faudrait donc prévoir un script qui restaure le dossier T avant extinction de la machine puis qui l'exporte (et non le supprime) sur le RAM disk lors du log-in. La suppression du lien symbolique vers T lors de l'extinction de la machine pourrait suffire à régler le problème, le dossier étant automatiquement re-créé par le système s'il est absent au démarrage. Yep,j'ai eu le meme soucis hier soir, mais la flemme de poster, fatigué malgré le café ;-) Au redémarrage, plus rien sur le bureau/Fan a fond, j'ai donc supprimer le lien "T" qui ne pointé vers plus rien. J'ai lancé une App pour reconstruire le dossier "T" puis créer le repertoire "com.apple.IconServices" tout est revenu dans l'ordre. Et si on creait une image de restauration de "T" et "com.apple.IconServices" avant extinction de la machine? PS;Pardon , pas reveillé ce matin, en gros c'est ce que tu expliques concernant la restauration ^^ Ce message a été modifié par Kalm - 6 May 2014, 08:06. |
|
|
![]()
Message
#47
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Peut être quelques element de reponse vers ce lien.;-)
https://gist.github.com/pklaus/931579#file-...mdisk_macosx-sh Code #!/bin/bash
# +----------------------------------------------------------------------+ # | | # | Set up Mac OS X to store temporary files in RAM rather than on disk.| # | | # | By Philipp Klaus <http://blog.philippklaus.de> | # | | # | Originally by Ricardo Gameiro <http://blogs.nullvision.com/?p=357> | # | Changes by Daniel Jenkins | # | <http://blogs.nullvision.com/?p=357#comment-1140> | # | | # +----------------------------------------------------------------------+ cd /System/Library/StartupItems sudo mkdir RamFS sudo chown -R root:wheel RamFS sudo chmod -R u+rwX,g+rX,o+rX RamFS cat << "EOF" | sudo tee RamFS/RamFS > /dev/null #!/bin/sh # Create a RAM disk with same perms as mountpoint RAMDisk() { mntpt=$1 rdsize=$(($2*1024*1024/512)) echo "Creating RamFS for $mntpt" # Create the RAM disk. dev=`hdik -drivekey system-image=yes -nomount ram://$rdsize` # Successfull creation... if [ $? -eq 0 ]; then # Create HFS on the RAM volume. newfs_hfs $dev # Store permissions from old mount point. eval `/usr/bin/stat -s $mntpt` # Mount the RAM disk to the target mount point. mount -t hfs -o union -o nobrowse $dev $mntpt # Restore permissions like they were on old volume. chown $st_uid:$st_gid $mntpt chmod $st_mode $mntpt fi } # Test for arguments. if [ -z $1 ]; then echo "Usage: $0 [start|stop|restart] " exit 1 fi # Source the common setup functions for startup scripts test -r /etc/rc.common || exit 1 . /etc/rc.common StartService () { ConsoleMessage "Starting RamFS disks..." RAMDisk /private/tmp 256 RAMDisk /var/run 64 #RAMDisk /var/db 1024 #mkdir -m 1777 /var/db/mds } StopService () { ConsoleMessage "Stopping RamFS disks, nothing will be done here..." # diskutil unmount /private/tmp /private/var/run # diskutil unmount /private/var/run } RestartService () { ConsoleMessage "Restarting RamFS disks, nothing will be done here..." } RunService "$1" EOF sudo chmod u+x,g+x,o+x RamFS/RamFS cat << EOF | sudo tee RamFS/StartupParameters.plist > /dev/null <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd"> <plist version="0.9"> <dict> <key>Description</key> <string>RamFS Disks Manager</string> <key>OrderPreference</key> <string>Early</string> <key>Provides</key> <array> <string>RamFS</string> </array> <key>Uses</key> <array> <string>Disks</string> </array> </dict> </plist> EOF |
|
|
![]()
Message
#48
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Ce matin j'ai démarré avec le script modifié qui génère le RAMDisk et exporte $TMPDIR dessus mais j'ai été confronté à un problème: certains icônes dans mon Dock avaient disparu. C'est peut être en rapport avec le problème relevé par yponomeute mais la création d'un dossier "com.apple.IconServices" dans "Temp" n'a rien réglé sur le moment, aussi j'en suis revenu à la configuration précédente et j'ai laissé "T" à sa place originale. [Edit] La consultation des logs systèmes de démarrage dans la Console, confirme que certains services, dont IconServices, ont besoin du dossier tmp avant le log-in du premier utilisateur, ce qui est logique. Il faudrait donc prévoir un script qui restaure le dossier T avant extinction de la machine puis qui l'exporte (et non le supprime) sur le RAM disk lors du log-in. La suppression du lien symbolique vers T lors de l'extinction de la machine pourrait suffire à régler le problème, le dossier étant automatiquement re-créé par le système s'il est absent au démarrage. Bon du coup, j'ai testé en créant une image persistante du RamDisk de "T" avant le l'extinction. après re-demarrage le lien retrouve bien ses petits mais seulement une fois le RamDisk monté, ce qui ne ce fait pas en priorité lors du demarrage. ![]() PS: sinon plus de soucis de disparition du bureau ou autre. EDIT Fausse joie, un nouveau redémarrage et tout ce qui était sur le bureau a nouveau disparu, Fan a fond. Le lien ne retrouve plus ses petits, J'ai donc supprimé le lien "T" pour que le système en créait un nouveau au démarrage. PS: Comme tu le soulignes la restauration devrait se faire avant le Log in. Ce message a été modifié par Kalm - 6 May 2014, 09:42. |
|
|
Guest_macmagna_* |
![]()
Message
#49
|
Guests ![]() |
Le script que tu as trouvé Kalm fait tout dans les règles avec un service dédié, c'est la meilleure solution.
Je n'ai pas décortiqué tout le code, mais on peut parier que les gars ont ajouté tout ce qu'il faut pour éviter les mauvaises surprises. L'autre solution est de déplacer les dossiers, plutôt que de les détruire, lors du login et du logout. Il faudrait probablement aussi démonter le RAMDisk lors du logout et tester sa présence ou pas lors du login... Le script de log-in deviendrait donc: Code if [ ! -e /Volumes/RAMDisk ] then diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` fi cp rp ~/Library/Caches /Volumes/RAMDisk/Caches rm -r ~/Library/Caches ln -s /Volumes/RAMDisk/Caches ~/Library/Caches cp -rp $TMPDIR /Volumes/RAMDisk/Temp rm -r $TMPDIR ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} Le script de log-out: Code rm ~/Library/Caches cp -rp /Volumes/RAMDisk/Caches ~/Library/Caches rm $TMPDIR cp -rp /Volumes/RAMDisk/Temp $TMPDIR et il y a moyen de s'assurer que des scripts se lancent au login et au logout en usant de: Code sudo defaults write com.apple.loginwindow LoginHook chemin/vers/le/script/de/login et de:Code sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout A noter que tout ceci est expérimental et peut poser, entre autres, de sérieux problèmes lors d'une utilisation multi-utilisateurs (mélange possible des Caches et des Temp des différents utilisateurs, etc...)... A utiliser donc avec sagesse et modération, à vos risques et périls, bien entendu... ![]() |
|
|
![]()
Message
#50
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Le script que tu as trouvé Kalm fait tout dans les règles avec un service dédié, c'est la meilleure solution. Je n'ai pas décortiqué tout le code, mais on peut parier que les gars ont ajouté tout ce qu'il faut pour éviter les mauvaises surprises. Yep, mais selon les témoignage ne fonctionne pas en 10.9. L'autre solution est de déplacer les dossiers, plutôt que de les détruire, lors du login et du logout. Il faudrait probablement aussi démonter le RAMDisk lors du logout et tester sa présence ou pas lors du login... N'étant pas un spécialiste du script (jamais touché) ^^, tu peux m'expliquer un peu comment tu intègres ces 2 script dans l'éditeurs Apple Script afin que ca se fasse automatiquement. ![]() ![]() |
|
|
Guest_macmagna_* |
![]()
Message
#51
|
Guests ![]() |
N'étant pas un spécialiste du script (jamais touché) ^^, tu peux m'expliquer un peu comment tu intègres ces 2 script dans l'éditeurs Apple Script afin que ca se fasse automatiquement. ![]() ![]() Tu ouvres l'Editeur AppleScript puis tu copies ton script en prenant soin de l'encadrer par do shell script "". Pour le script de login, ça donne ça: Code do shell script " ensuite tu fais "Fichier->Enregistrer...", et tu choisis "Application" dans le format de fichier avant de clicker "Enregistrer". Tu obtiens ainsi une petite application autonome qui exécute ton bout de script chaque fois qu'elle est lancée. Tu peux faire ça avec les deux scripts et lancer la première application automatiquement à l'ouverture de cession en la choisissant dans les éléments à lancer pour ton compte (PreferencesSystemes->UtilisateursEtGroupes-> onglet "Ouverture"). Par contre rien n'est prévu pour le logout donc tu devras le faire manuellement.if [ ! -e /Volumes/RAMDisk ] then diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` fi cp rp ~/Library/Caches /Volumes/RAMDisk/Caches rm -r ~/Library/Caches ln -s /Volumes/RAMDisk/Caches ~/Library/Caches cp -rp $TMPDIR /Volumes/RAMDisk/Temp rm -r $TMPDIR ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} " L'autre option (avec sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout) est meilleure mais "chemin/vers/le/script/de/logout" doit pointer, a priori, vers un script et non une application. Dans ce cas il faut copier le script dans un fichier texte, puis faire un "chmod +x chemin/vers/le/script" pour le rendre exécutable, puis utiliser "sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout". Un détail important avec l'utilisation de "sudo defaults write com.apple.loginwindow LoginHook et LogoutHook" c'est que le script est exécuté en "root" et que donc il ne doit pas contenir de chemins relatifs (préfixés par "~") mais que des chemins absolus (commençant par "/"). Si tu dois utiliser cette solution, tu dois donc changer les deux "~/Library/Caches" par le chemin complet du genre "/Users/Kalm/Library/Caches"... |
|
|
![]()
Message
#52
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Merci macmagna.
Je vais tester ca et reviendrais pour les retours ;-) |
|
|
![]()
Message
#53
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 969 Inscrit : 26 Jan 2011 Lieu : Pollachius virens Membre no 164 083 ![]() |
'L'autre option (avec sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout) est meilleure mais "chemin/vers/le/script/de/logout" doit pointer, a priori, vers un script et non une application. Dans ce cas il faut copier le script dans un fichier texte, puis faire un "chmod +x chemin/vers/le/script" pour le rendre exécutable, puis utiliser "sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout". Un détail important avec l'utilisation de "sudo defaults write com.apple.loginwindow LoginHook et LogoutHook" c'est que le script est exécuté en "root" et que donc il ne doit pas contenir de chemins relatifs (préfixés par "~") mais que des chemins absolus (commençant par "/"). Si tu dois utiliser cette solution, tu dois donc changer les deux "~/Library/Caches" par le chemin complet du genre "/Users/Kalm/Library/Caches"... Si le script est exécuté en tant que root le contenu de la variable $TMPDIR ne sera plus bon non plus. -------------------- MBP 2017 15" avec clavier pourri et touchbar inutile
|
|
|
Guest_macmagna_* |
![]()
Message
#54
|
Guests ![]() |
'L'autre option (avec sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout) est meilleure mais "chemin/vers/le/script/de/logout" doit pointer, a priori, vers un script et non une application. Dans ce cas il faut copier le script dans un fichier texte, puis faire un "chmod +x chemin/vers/le/script" pour le rendre exécutable, puis utiliser "sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout". Un détail important avec l'utilisation de "sudo defaults write com.apple.loginwindow LoginHook et LogoutHook" c'est que le script est exécuté en "root" et que donc il ne doit pas contenir de chemins relatifs (préfixés par "~") mais que des chemins absolus (commençant par "/"). Si tu dois utiliser cette solution, tu dois donc changer les deux "~/Library/Caches" par le chemin complet du genre "/Users/Kalm/Library/Caches"... Si le script est exécuté en tant que root le contenu de la variable $TMPDIR ne sera plus bon non plus. Tout à fait! bien vu ![]() Il vaut donc mieux remplacer tous les chemins par des chemins absolus, ce qui ne rend pas le script très portable ![]() |
|
|
![]()
Message
#55
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 969 Inscrit : 26 Jan 2011 Lieu : Pollachius virens Membre no 164 083 ![]() |
Pour obtenir le chemin vers le répertoire temporaire de l'user toto si le script est exécuté en tant que root :
Code TD=`sudo -H -u toto getconf DARWIN_USER_TEMP_DIR`
if [ ! -e /Volumes/RAMDisk ] then diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` fi cp rp /Users/toto/Library/Caches /Volumes/RAMDisk/Caches rm -r /Users/toto/Library/Caches ln -s /Volumes/RAMDisk/Caches /Users/toto/Library/Caches cp -rp $TD /Volumes/RAMDisk/Temp rm -r $TD ln -s /Volumes/RAMDisk/Temp ${TD%/} Ce message a été modifié par yponomeute - 6 May 2014, 11:33. -------------------- MBP 2017 15" avec clavier pourri et touchbar inutile
|
|
|
Guest_macmagna_* |
![]()
Message
#56
|
Guests ![]() |
Pour obtenir le chemin vers le répertoire temporaire de l'user toto si le script est exécuté en tant que root : Code TD=`sudo -H -u toto getconf DARWIN_USER_TEMP_DIR` if [ ! -e /Volumes/RAMDisk ] then diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` fi cp rp /Users/toto/Library/Caches /Volumes/RAMDisk/Caches rm -r /Users/toto/Library/Caches ln -s /Volumes/RAMDisk/Caches /Users/toto/Library/Caches cp -rp $TD /Volumes/RAMDisk/Temp rm -r $TD ln -s /Volumes/RAMDisk/Temp ${TD%/} Oui, et on parlera aussi de l'existence d'une variable DARWIN_USER_CACHE_DIR qui pointe sur le dossier "C"... En toute logique, il faudrait aussi porter celui-là sur le RAMDisk, ou peut-être le dossier parent qui les contient tous les deux (plus un dossier "0" chez moi)? |
|
|
![]()
Message
#57
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Pour obtenir le chemin vers le répertoire temporaire de l'user toto si le script est exécuté en tant que root : Code TD=`sudo -H -u toto getconf DARWIN_USER_TEMP_DIR` if [ ! -e /Volumes/RAMDisk ] then diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` fi cp rp /Users/toto/Library/Caches /Volumes/RAMDisk/Caches rm -r /Users/toto/Library/Caches ln -s /Volumes/RAMDisk/Caches /Users/toto/Library/Caches cp -rp $TD /Volumes/RAMDisk/Temp rm -r $TD ln -s /Volumes/RAMDisk/Temp ${TD%/} Oui, et on parlera aussi de l'existence d'une variable DARWIN_USER_CACHE_DIR qui pointe sur le dossier "C"... En toute logique, il faudrait aussi porter celui-là sur le RAMDisk, ou peut-être le dossier parent qui les contient tous les deux (plus un dossier "0" chez moi)? Je l'ai fait avec le script "toto" et "macmagna" et avec "calme" ^^ Code do shell script " TD=`sudo -H -u kalm getconf DARWIN_USER_TEMP_DIR` if [ ! -e /Volumes/RAMDisk ] then diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` fi cp rp /Users/kalm/Library/Caches /Volumes/RAMDisk/Caches rm -r /Users/kalm/Library/Caches ln -s /Volumes/RAMDisk/Caches /Users/kalm/Library/Caches cp -rp $TD /Volumes/RAMDisk/Temp rm -r $TD ln -s /Volumes/RAMDisk/Temp ${TD%/} " Dans les 2 cas. Le lien "T" pointe correctement vers "temp" mais aucun dossier "Caches"n'a ete créait dans le RAMDisk. EDIT: Une petite precision, mon "home" kalm est exporté sur le HDD /Volumes/DATA, le système etant sur le SSD, mais ne posait aucun problème avec les commandes précédente, le dossier "Caches" etait correctement copier dans le RamDisk. Ce message a été modifié par Kalm - 6 May 2014, 12:20. |
|
|
![]()
Message
#58
|
|
Nouveau Membre Groupe : Membres Messages : 35 Inscrit : 28 Apr 2014 Membre no 190 307 ![]() |
C'est sympa un Ram Disk comme on en avait sur Amiga à l'époque (Toute la ram était accessible sous la forme d'un Ram Disk).
![]() Ce message a été modifié par JimNeray - 6 May 2014, 12:11. -------------------- Mac Pro 4.1 Upgradé 5.1 hexa 3.46Ghz 24Gb SSD GTX680 / G4 Sawtooth Sonnet 1Ghz / iPhone 3g / iPhone 4s / iPhone 6s
Commodore 64 / Amiga 500-600-1200-2000-4000T-CD32 / Atari 1040STe-VCS2600 |
|
|
Guest_macmagna_* |
![]()
Message
#59
|
Guests ![]() |
Je l'ai fait avec le script "toto" et "macmagna" et avec "calme" ^^ Tu ne dois remplacer "toto" que par ton nom d'utilisateur, le nom de ton dossier Home, le faire avec le mien ne fonctionnera pas ![]() De toute façon, la motif de yponomeute ne concerne que le script exécuté en root et ne s'applique pas à la version AppleScript que tu utilises avec le "do shell script" autour... Je te conseille d'en revenir au script de départ que tu transformes en application AppleScript et que tu lances à l'ouverture de cession, c'est ce que je fais moi même, je n'exporte toutefois pas le dossier T sur le RAMDisk, cela m'évite tous les autres problèmes, comme celui de restaurer le dossier lors du logout. Une petite precision, mon "home" kalm est exporté sur le HDD /Volumes/DATA, le système etant sur le SSD, mais ne posé aucun probleme avec les commandes precedente, le dossier "Caches" etait correctement copier dans le RamDisk. Alors c'est normal que le dossier "Caches" ne soit pas là. Tu dois remplacer dans le script tous les "~/Library/Caches" par le chemin qui mène au tien sur "/Volumes/DATA". J'ignore comment est organisé et où se trouve ton dossier Home sur ton disque "DATA" alors je ne peux te donner le chemin complet mais il est clair que ta config est particulière: SSD + HDD + RAMDisk avec dossiers déplacés et re-dirigés..., ça donne un peu le tournis ![]() C'est sympa un Ram Disk comme on en avait sur Amiga à l'époque (Toute la ram était accessible sous la forme d'un Ram Disk). ![]() Oui c'est clair! J'en ai eu un aussi et je me rappelle bien de la petite disquette sur le Bureau (pardon le WorkBench) qui représentait la RAM dans ce cas... en tout cas, c'était bien plus simple que ce que l'on cherche à faire ici... |
|
|
![]()
Message
#60
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 969 Inscrit : 26 Jan 2011 Lieu : Pollachius virens Membre no 164 083 ![]() |
Je l'ai fait avec le script "toto" et "macmagna" et avec "calme" ^^ Code do shell script " TD=`sudo -H -u kalm getconf DARWIN_USER_TEMP_DIR` if [ ! -e /Volumes/RAMDisk ] then diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` fi cp rp /Users/kalm/Library/Caches /Volumes/RAMDisk/Caches rm -r /Users/kalm/Library/Caches ln -s /Volumes/RAMDisk/Caches /Users/kalm/Library/Caches cp -rp $TD /Volumes/RAMDisk/Temp rm -r $TD ln -s /Volumes/RAMDisk/Temp ${TD%/} " Dans les 2 cas. Le lien "T" pointe correctement vers "temp" mais aucun dossier "Caches"n'a ete créait dans le RAMDisk. EDIT: Une petite precision, mon "home" kalm est exporté sur le HDD /Volumes/DATA, le système etant sur le SSD, mais ne posait aucun problème avec les commandes précédente, le dossier "Caches" etait correctement copier dans le RamDisk. Normal, il manque un tiret devant rp dans le premier cas ![]() Code cp -rp /Users/kalm/Library/Caches /Volumes/RAMDisk/Caches
-------------------- MBP 2017 15" avec clavier pourri et touchbar inutile
|
|
|
![]() ![]() |
Nous sommes le : 7th September 2025 - 01:20 |