schedule-shutdown is a CLI tool to schedule computer shutdowns. This can be useful when:
- You want to start a large download before you leave the computer, but you know the download will be finished well before you get back
- You already know the command
shutdown.exe /s /t <seconds>
, but you can't be bothered converting 2 hours and 47 minutes into seconds - You want something to force you to go to bed at a reasonable hour
Requires Node. Currently supports Windows, Linux, and macOS. schedule-shutdown can also be used as a library.
Install schedule-shutdown with either of the following, depending on your preferred package manager:
yarn global add schedule-shutdown
npm install --global schedule-shutdown
Then use it like so:
$ schedule-shutdown --help
schedule-shutdown <duration>
Schedules a shutdown after the provided duration has elapsed
Commands:
schedule-shutdown <duration> Schedules a shutdown after the provided
duration has elapsed [default]
schedule-shutdown cancel Cancels a previously scheduled shutdown or
restart
Options:
--verbose Log the internal commands used and their outputs
[boolean] [default: false]
-r, --restart Schedule a restart instead of a shutdown
[boolean] [default: false]
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
Examples:
schedule-shutdown 5m Shutdown in 5 minutes
schedule-shutdown 30m Shutdown in 30 minutes
schedule-shutdown 1h30m Shutdown in 1 hour and 30 minutes
schedule-shutdown 3h Shutdown in 3 hours
schedule-shutdown 0m Shutdown immediately
schedule-shutdown -r 2h Restart in 2 hours
$ schedule-shutdown 1h20m
Shutdown scheduled for Tue Dec 04 2018 7:26:20 PM
$ schedule-shutdown cancel
Scheduled shutdown or restart cancelled
$ schedule-shutdown --restart 3h
Restart scheduled for Tue Dec 04 2018 9:06:30 PM
$ schedule-shutdown cancel
Scheduled shutdown or restart cancelled
To uninstall, do one of the following, depending on how you installed it:
yarn global remove schedule-shutdown
npm uninstall --global schedule-shutdown
If you have your own project where you want to shutdown people's computers, you can use schedule-shutdown as a library:
import { cancelShutdown, scheduleRestart, scheduleShutdown } from 'schedule-shutdown';
async function main() {
// shutdown in 1 hour and 20 minutes
const shutdownTime = await scheduleShutdown('1h20m');
console.log(`Shutting down at ${shutdownTime.toLocaleTimeString()}`);
await cancelShutdown();
console.log('Shutdown cancelled');
// restart in 5 minutes
const restartTime = await scheduleRestart(5);
console.log(`Restarting at ${restartTime.toLocaleTimeString()}`);
await cancelShutdown();
console.log('Restart cancelled');
}
main().catch(console.error);
Schedules a shutdown after the provided duration has elapsed. The duration can be a number of minutes, or a non-empty string matching the regular expression (\d+h)?(\d+m)?
.
Returns a promise which resolves when the shutdown is successfully scheduled. The resolved value is the scheduled shutdown time as a Date
object. The promise will reject if the internal command failed.
If verbose is set to true, then the internal commands and their outputs will be logged to the console.
Exactly like scheduleShutdown(duration, [verbose=false])
, but schedules a restart instead.
Cancels a previously scheduled shutdown or restart.
Returns a promise which resolves when the shutdown cancelled successfully. The promise will reject if the internal command failed.
If verbose is set to true, then the internal commands and their outputs will be logged to the console.