3 votes

Faire des changements dans sysctl au démarrage

J'aimerais modifier les paramètres smb par défaut au démarrage pour supprimer les délais d'attente. J'ai le script suivant ;

#!/bin/sh

sysctl net.smb.fs.kern_deadtimer=0
sysctl net.smb.fs.kern_hard_deadtimer=0
sysctl net.smb.fs.kern_soft_deadtimer=0

Exécuter ce script avec sudo définit correctement les options pertinentes du noyau. Je sais donc que ces commandes sont les bonnes.

J'ai créé le LaunchDaemon suivant dans le fichier /Library/LaunchDaemons/ pour essayer d'obtenir ce script à exécuter au démarrage ;

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.jo.sysctl</string>
    <key>Disabled</key>
    <false/>
    <key>UserName</key>
    <string>admin</string>
    <key>GroupName</key>
    <string>staff</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/admin/scripts/sysctl.sh</string>
    </array>
    <key>KeepAlive</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

J'ai vérifié le fichier plist avec plutil et tout est en ordre. J'ai défini les permissions sur le shell script à 0755 et définir la propriété du fichier plist à root:wheel .

Running

sudo launchctl load /Library/LaunchDaemons/com.jo.sysctl.plist

...ne fait rien. Les valeurs par défaut sont toujours incorrectes. Où est-ce que je me trompe ?

Gracias

5voto

LаngLаngС Points 7522

Il est probablement préférable d'abandonner l'approche script et d'utiliser le fichier de paramètres conçu à cet effet : sysctl.conf

Cela s'applique jusqu'à MacOS 10.12 Sierra.<br>comme l'a souligné @klanomath dans les commentaires : " .deadtimer sont tous "sysctl : unknown oid .deadtimer" dans mon environnement High Sierra. IE ils n'existent pas !"<br>Il semble donc que cette partie de l'interface sysctl ait complètement disparu maintenant.

sudo nano  /private/etc/sysctl.conf

ajoutez les variables suivantes :

net.smb.fs.kern_deadtimer=0
net.smb.fs.kern_hard_deadtimer=0
net.smb.fs.kern_soft_deadtimer=0

Si vous démarrez ensuite en mode verbeux ( cmd + v au démarrage ou sudo nvram boot-args="-v" avant un redémarrage), vous devriez voir les paramètres personnalisés être appliqués.

Vous devriez alors voir des messages comme ceux-ci au démarrage :

net.smb.fs.kern_deadtimer: 60 -> 0
net.smb.fs.kern_hard_deadtimer: 600 -> 0
net.smb.fs.kern_soft_deadtimer: 30 -> 0

Sinon, vérifiez auprès de

sysctl -a | grep smb

Cette approche devrait fonctionner pour la plupart des paramètres accessibles via sysctl et donc être aussi généralisée que l'indique le titre de la question.

0voto

user284299 Points 111

J'ai fini par trouver un autre moyen de le faire.

L'astuce consistait à définir une valeur de délai d'attente par défaut plus longue dans le fichier /etc/nsmb.conf comme ça :

[default]
max_resp_timeout=1000     # default is 30 which way too low!

Merci à tous pour votre aide :-)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X