Partage
  • Partager sur Facebook
  • Partager sur Twitter

system("SHUTDOWN") ne marche pas ?

Sujet résolu
23 décembre 2009 à 1:04:08

Bonjour !

Je suis en train de coder un programme en console qui doit éteindre automatiquement mon PC au bout d'un certains temps.
Tout marche comme je veux, excepté la fonction system("SHUTDONW").
SHUTDOWN est bien la commande windows qui doit éteindre le PC (j'ai vérifié), mais elle ne marche pas quand je l'utilise dans mon programme.

Merci d'avance !
  • Partager sur Facebook
  • Partager sur Twitter
23 décembre 2009 à 1:08:46

La fonction shutdown prend des arguments et ne s'utilise pas toute seule comme ça.
Je t'invite à aller faire un tour ici : http://www.batcher.fr/cmd/shutdown.php
  • Partager sur Facebook
  • Partager sur Twitter
23 décembre 2009 à 1:10:42

Merci Pouet_forever, je vais lire ca.
  • Partager sur Facebook
  • Partager sur Twitter
23 décembre 2009 à 1:12:09

Regarde le "man" (manuel) de shutdown : tape "shutdown -?" dans une invite de commande.
Pour éteindre immédiatement : shutdown -s -t00
-s : éteindre ( -r pour redémarrer)
par défaut il y a un avertissement avant d'éteindre pendant 30 secondes. Donc on utilise -t00 pour dire "avertissement pendant 0 secondes" ce qui équivaut a "pas d'avertissement".

Enfin (a verifier) je crois que le fait de mettre des majuscules est pas important.
  • Partager sur Facebook
  • Partager sur Twitter
23 décembre 2009 à 11:53:36

Merci beaucoup !!

EDIT: Bon la je commence vraiment à sécher :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define WINDOWS

int wait(int secondes);

int main(int argc, char **argv)
{
    int minutes = 0;

    printf("Combiens de minutes pour le compte a rebours ? ");
    scanf("%d", &minutes);

    wait(minutes); // Je devrait rajouter * 60 mais pour les test je raccourci le temps.

    printf("\nArret de la machine...\n");
    system("SHUTDOWN -s -t00");

    getchar();
    return EXIT_SUCCESS;
}

int wait(int secondes)
{
    clock_t endwait, time1Second;
    int secondesRestantes = secondes;

    endwait = clock() + secondes * CLOCKS_PER_SEC;
    time1Second = clock() + CLOCKS_PER_SEC;

    while(clock() < endwait)
    {
        if(clock() > time1Second)
        {
            #ifdef WINDOWS
            system("cls");
            #endif
            #ifdef LINUX
            system("clear");
            #endif

            secondesRestantes--;
            time1Second = clock() + CLOCKS_PER_SEC;
            printf("%d secondes restantes...", secondesRestantes);
        }
    }
}


Voici le resultat après le shutdown -s -t00 :
http://nsm02.casimages.com/img/2009/12 [...] 675112369.jpg
  • Partager sur Facebook
  • Partager sur Twitter
23 décembre 2009 à 12:28:07

Tu l'a exécuté sur code::block, et code::block met une pause a la fin du programme, tu doit l'exécuter depuis l'explorateur windows.
  • Partager sur Facebook
  • Partager sur Twitter
23 décembre 2009 à 12:37:04

Il n'y a pas tout le texte comme dans mon screen, mais l'ordi ne s'éteint pas et il repart au début de mon main.

EDIT: j'ai trouvé, il fallait séparer par un espace le -t et le nombre après :

system("SHUTDOWN -s -f -t 0");
  • Partager sur Facebook
  • Partager sur Twitter
23 décembre 2009 à 17:59:44

Juste une petite question comme ça... :-°
La commande Shutdown requiert les privilèges super-utilisateur.

Ton programme, tu le lances en Root?
Tu lui accorde le bit Set-Uid?
  • Partager sur Facebook
  • Partager sur Twitter
- Il y a un chemin vers chaque sommet, même le plus haut -
29 août 2019 à 4:45:11

A l'aide de File Manager allez dans:
/usr/share/polkit-1/actions
Dans la barre de menu sélectionnez Tools puis cliquez sur Open Current Folder as Boot

(A faire car le fichier à éditer est Read Only)
Une 2ème fenêtre va s'ouvrir avec les mêmes fichiers.
Faire 1 clic droit sur le fichier org.freedesktop.consolekit.policy
Choisir Open With... et choisir Office, Libreoffice.writer
Une fois le texte affiché, toutes les lignes < allow_active > doivent être suivie de "yes" càd :
< allow_active > yes < /allow_active >

Enregistrez le fichier et fermez toutes les fenêtres.
Essayez un Shutdown ou un Reboot, vous verrez, ça fonctionne très bien

-
Edité par LeclèreMichel 29 août 2019 à 4:46:43

  • Partager sur Facebook
  • Partager sur Twitter
2 avril 2024 à 3:33:23

J'ai utilisé shutdown /I pour exécuter un autre ordinateur et sa fonctionne pas la pourquoi
  • Partager sur Facebook
  • Partager sur Twitter
2 avril 2024 à 13:17:58

Bonjour,

Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération
  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)