J'ai essayé d'utiliser plink.exe
(de l'auteur de PuTTY) pour établir un proxy SOCKS local vers un site distant, ainsi que quelques tunnels.
L'action consiste simplement à démarrer plink.exe
avec les bons paramètres. Pas de questions là-dessus.
Les conditions lient le démarrage à une connexion réseau disponible, ce que j'ai trouvé sensé.
Je l'ai également configuré pour :
- Autoriser la tâche à être exécutée sur demande
- Exécuter la tâche dès que possible après un démarrage programmé manqué
- Si la tâche échoue, redémarrer toutes les : [1 minute]
- Si la tâche en cours ne se termine pas lorsqu'elle est demandée, forcer son arrêt
Maintenant, tout cela fonctionne parfaitement au démarrage du système. Cependant, lorsque je mets la machine en veille et que je la réveille, cela échoue.
En fait, juste après le réveil, la fenêtre de console de plink.exe
est toujours visible, mais disparaît (probablement parce que la session SSH avant la mise en veille a expiré depuis longtemps). Cependant, l'état de la tâche est alors toujours listé comme En cours d'exécution bien qu'elle soit clairement partie (c'est-à-dire que si j'utilisais CreateProcess
, je serais informé que le processus a disparu).
Cet état signifie que je dois l'arrêter explicitement et ensuite le démarrer à nouveau explicitement.
Est-ce que quelqu'un connaît une méthode par laquelle je peux essentiellement apprendre aux tâches planifiées qu'elles devraient redémarrer le travail lorsque le processus se termine ? Je n'ai aucune idée de quelle est la métrique exacte, mais clairement, l'état En cours d'exécution que j'observe est faux.
L'idée est de redémarrer plink.exe
(et donc de rétablir le proxy SOCKS) chaque fois qu'il tombe en panne. Que ce soit juste après le démarrage et une tentative de connexion échouée ou après avoir réveillé la machine de la mise en veille.
NB : Je recherche une solution qui peut fonctionner à la fois sur Windows 7 et Windows 10.
Suivant les suggestions dans les commentaires, les deux paramètres suivants ont été modifiés :
0 votes
Votre adaptateur réseau est-il configuré pour s'éteindre pour économiser de l'énergie lorsqu'il est en veille ? Ouvrez
devmgmt.msc
et double-cliquez sur votre adaptateur réseau, puis allez dans gestion de l'alimentation et assurez-vous de décocher Autoriser l'ordinateur à éteindre le périphérique pour économiser de l'énergie s'il n'est pas grisé.0 votes
@NetworkKingPin: Je viens de l'éteindre, il n'était pas grisé. Cependant, après avoir mis la machine en veille et l'avoir réveillée, le problème est exactement le même qu'auparavant.
0 votes
Je me demande si il est possible que la raison pour laquelle le programme s'arrête est lorsque qu'il est en veille il arrête le disque dur de bouger. Essayez ceci Dans la boîte des options d'alimentation qui s'ouvre, cliquez sur le signe + à côté de l'option Disque Dur. Ici, vous verrez les paramètres requis sous l'entête Arrêter le disque dur après. Changez la valeur à 0.
0 votes
@NetworkKingPin: Je ne suis pas sûr, mais vous avez peut-être mal compris la question. Étant un rédacteur de pilotes, je peux vous dire que bien des fois, un programme en mode utilisateur ne saura pas du tout que certaines ressources sont indisponibles pendant le sommeil. Le réseau est un cas particulier, car la liaison montante prend du temps pour se renégocier. Cela dit: je vais changer la valeur et je vous ferai un retour.
0 votes
@NetworkKingPin: aucune modification après avoir ajusté ce paramètre, non plus. Je viens de le tester.