美文网首页
MacOS 自动定时开关机

MacOS 自动定时开关机

作者: 枫林风雨 | 来源:发表于2018-12-18 22:00 被阅读13次

    自动开机只有通过系统偏好设置来设置,而关机可以使用 shell 指令来实现。

    一、自动开机

    1. 系统偏好设置->节能->定时->勾选设置定时开机;

    说明

    • 定时开机只是把电脑打开,开机之后显示的是用户登录窗,此时系统级别的开机启动配置设置会正常启动,但用户自定义的开机启动的配置需要用户登入相应用户 mac 账号才会执行。想了解开机启动的配置??
    • 基于上面的情况,如果需要开机自动启动用户自己配置的开机启动任务,则要再设置下自动登录,操作如下:系统偏好设置->用户与群组->登录选项->解锁,输入密码->自动登录

    二、自动关机

    1. 系统偏好设置->节能->定时->勾选设置定时关机;
    1. 通过 shutdown 指令:
      shutdown -h now 立即关机
      shutdown -h +10 10分钟之后自动关机

    说明

    • shutdown 需要超级用户权限,所以正确使用是这样的形式:sudo shutdown -h now,超级用户命令是需要每次都输入密码的,要实现真正的自动化,我们还需要做一点用户权限的配置,配置文件路径:/etc/sudoers,修改这个文件必须、必须、必须是root用户,可以使用 su root 切换用户,如果没有启用 root 用户,请参考

    /etc/sudoers 主要设置如下:

    # User privilege specification
    root    ALL=(ALL) ALL
    %admin  ALL=(ALL) ALL
    
    # Uncomment to allow people in group wheel to run all commands
    # %wheel        ALL=(ALL) ALL
    
    # Same thing without a password
    # %wheel        ALL=(ALL) NOPASSWD: ALL
    
    # Samples
    # %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
    # %users  localhost=/sbin/shutdown -h now
    我们添加的配置,如有别的需要,可参考上面👆
    --------------------------------------------
    user01 localhost=/sbin/shutdown  
    --------------------------------------------
    
    • user01 是需要赋予权限的用户,用户和用户名不一定相同,可通过 whoami 指令查看当前用户。
    • 这样配置以后就可以不用输入密码直接在脚本里通过 shell 指令关机,而不需要手动输入密码了。如需要定时自动执行,需要使用crontab指令,请参考。示例如下:
    user01$ crontab -e
     # 输入以下指令后再 wq! 保存并退出
     30 5 * * * shutdown -h now  #指定每天的 5:30 执行关机命令 
    

    #关于其它免密码输入的办法

    网上有提出方案把密码通过管道传给sudo指令,但我都测试过了,在Mac上行不通。方案包括:

    1. echo 密码 | sudo shutdown -h now
    2. sudo shutdown -h now<<EOF
      密码
      EOF

    相关文章

      网友评论

          本文标题:MacOS 自动定时开关机

          本文链接:https://www.haomeiwen.com/subject/liqrkqtx.html