Pouvez-vous faire un système Linux arrêter et démarrer mon Raspberry-pi à certains moments?

Comment faire en sorte qu'un système s'éteigne et se rallume à différents moments. Par exemple, j'aurais mon «server» éteint à 4 heures du matin, puis rallume à 5 heures tous les jours. Est-ce possible? J'utilise un Raspberry-pi avec la version la plus récente de Raspbian.

Vous devriez être en mesure de le faire avec une timer secteur entre la prise secteur et l'alimentation.

Arrêtez le Raspberry à 4 heures du matin en utilisant un travail cron, puis réglez la timer pour couper le secteur un peu plus tard et pour rétablir l'alimentation à 5 heures du matin

Vous pouvez suspendre ou hibernate votre système, puis le rtcwake automatiquement avec la command rtcwake . Par exemple pour suspendre (pour bélier) et reprendre dans 60 secondes faire

 rtcwake -s 60 -m mem 

Pour hibernate (suspendre sur le disque) dans une heure à partir de maintenant et reprendre dans deux heures:

 sleep 3600; rtcwake -s 3600 -m disk 

Vous pouvez également réveiller le système à l'heure donnée avec l'option -t qui prend des secondes depuis 1970 comme argument. Run man rtcwake pour plus d'informations.

Vous pouvez l'éteindre quand vous le souhaitez avec halt ou shutdown now ou ce que vous préférez; planifiez cela avec cron ou un process personnalisé de fond de sumil.

En plus du réveil en time réel implémenté par le matériel PC normal (dont le pi n'est pas) et utilisable via rtcwake , il y a le wake-on-LAN .

Malheureusement, aucun de ceux-ci ne fonctionnera sur le framboise pi , puisque vous ne pouvez pas:

  • Suspendre à la RAM.
  • Tuer ou réinitialiser l'alimentation, sauf en tirant sur la fiche.
  • Suspendez au stockage, à l'exception (peut-être) de certaines modifications apscopes à la configuration du operating system (en l'occurrence, raspbian utilise un disque virtuel compressé pour le swap) – et même dans ce cas, le bootloader ne vous donnera pas la possibilité de l'ignorer.

Le matériel pi ne possède aucune fonctionnalité de «gestion de l'alimentation» du tout au-delà du redémarrage. S'il est branché, il est allumé et rest allumé après l'arrêt du système.

L'arrêt est facile, utilisez la command poweroff – mettez-la dans un crontab si vous le souhaitez. Le démarrage est cependant plus difficile car le operating system ne s'exécute pas lorsque la machine est arrêtée. Vous ne pouvez donc pas simplement append un travail cron et attendre qu'il s'exécute. Sur certains PC, la command rtcwake fonctionnera en effet, mais sur certains elle ne le sera pas, et vous devrez peut-être bricoler avec les parameters du BIOS.

Pour la Raspberry, comme @goldilocks a répondu, vous ne pouvez pas utiliser cela – la seule solution sera un matériel avec un microcontroller, un RTC et un relais ou MOSFET à travers lequel la ligne élecsortingque de la Raspberry ira. Le microcontroller devrait être connecté aux ports GPIO du Pi et vous devriez vous faire un équivalent rtcwake qui parle à ce microcontroller et lui donne l'heure actuelle et le time de réveil / arrêt.

Si vous pouvez vivre avec l'ajout d'une carte séparée, le WittyPi vous donne les moyens de démarrer et d'arrêter le Raspberry Pi à des heures planifiées. Je l'ai trouvé à utiliser 1,7 à 2,4 mA @ 5VDC en mode veille avec l'alimentation connectée. La batterie interne contient le RTC si l'alimentation est déconnectée. http://www.uugear.com/witty-pi-realtime-clock-power-management-for-raspberry-pi/

Pour planifier un arrêt du server, vous pouvez planifier /sbin/shutdown -h now dans votre table cron . Pour le démarrage, certains BIOS système vous permettent de démarrer automatiquement le système à une certaine heure de la journée. Si votre BIOS ne prend pas en charge cela, vous pouvez requestr à un autre hôte sur le même réseau d'envoyer un package Wake-On-Lan, mais cela nécessite également la prise en charge du BIOS et un autre hôte en cours d'exécution sur le réseau.