作为程序员,经常写代码写到难以自拔,但是如果长时间如此,对眼睛和颈椎都是很大负担。如何善待自己的眼睛和颈椎呢?答案就是:Linux cron。本文将介绍通过定时任务实现定时锁屏。注意:本人机器为 Ubuntu。

安装锁屏命令

sudo apt install gnome-screensaver

锁屏

gnome-screensaver-command -l

页面通知

为了更加优化,在锁屏前,弹出系统通知

notify-send -u normal -t 50000 -i appointment-new '1分钟后锁屏' '注意休息,善待眼睛、善待颈椎'

定时任务

Terminal中输入 crontab -e 进入定时任务编辑页面(如果是第一次,会提示选择编辑器,本人选择vim)。输入如下内容:

# m h  dom mon dow   command
29 * * * * notify-send -u normal -t 50000 -i appointment-new '1分钟后锁屏' '注意休息,善待眼睛、善待颈椎'
30 * * * * gnome-screensaver-command -l

奇怪的是,不管是通知还是锁屏,均无法生效。原因就在于 cron 中执行界面相关的命令,需要有如下合适的参数:$DBUS_SESSION_BUS_ADDRESS$DISPLAY。如何给这两个参数设置合适的值呢?可以从系统中已运行的程序中获取,详情介绍请参考。
新建脚本:/usr/local/bin/gui-program-from-cron.sh,内容如下:

#!/bin/sh
[ "$#" -lt 1 ] && echo "Usage: $0 program options" && exit 1program="$1"
shiftuser=$(whoami)
env_reference_process=$( pgrep -u "$user" xfce4-session || pgrep -u "$user" ciannamon-session || pgrep -u "$user" gnome-session || pgrep -u "$user" gnome-shell || pgrep -u "$user" kdeinit | head -1 )export DBUS_SESSION_BUS_ADDRESS=$(cat /proc/"$env_reference_process"/environ | grep --null-data ^DBUS_SESSION_BUS_ADDRESS= | sed 's/DBUS_SESSION_BUS_ADDRESS=//')
export DISPLAY=$(cat /proc/"$env_reference_process"/environ | grep --null-data ^DISPLAY= | sed 's/DISPLAY=//')
"$program" "$@"

修改脚本权限:

sudo chmod +x /usr/local/bin/gui-program-from-cron.sh

再次执行 crontab -e

# m h  dom mon dow   command
29 * * * * /usr/local/bin/gui-program-from-cron.sh notify-send -u normal -t 50000 -i appointment-new '1分钟后锁屏' '注意休息,善待眼睛、善待颈椎'
30 * * * * /usr/local/bin/gui-program-from-cron.sh gnome-screensaver-command -l

善待眼睛、善待颈椎,从看完本文开始!

参考

  • Make notify-send work from user cron file in ubuntu
  • ubuntu下提醒自己定时休息

Linux定时任务-定时锁屏相关推荐

  1. Linux终端怎么锁屏,自制Linux 终端 锁屏防窃助手

    很多时候我们不能一直守护在自己的电脑旁边,而且有些文件并不想让别人知道.那么这时候来个锁屏,是再合适不过的了.今天分享一个自制的锁屏工具,如下. 准备 操作系统 : 我这里是ElementaryOS虚 ...

  2. 儿童玩耍电脑时间限制软件,定时锁屏软件,免费开源

    1. 背景与介绍 孩子一玩电脑就忘记时间,造成游戏过度,眼睛近视,故写了一个软件来限制儿童玩电脑时间(大人也可以用).功能有,设置允许玩耍开始时间和结束时间,允许玩耍时长等,到时间自动关机锁屏等. 2 ...

  3. linux(Debian11)休眠锁屏后无法唤醒

    原文:[Debian10]intel核显使用xfce锁屏会黑屏无法唤醒解决方案 - Daniel_Luo - 博客园 intel核显笔记本安装了debian10.使用的是xfce的桌面环境.但是xfc ...

  4. linux定时任务 定时重启docker容器

    Linux添加crontab定时任务 由于公司古董项目,不知原因引发了,容器得每次重启才能正常使用.由于工作进度的原因没办法对老项目进行构架重构.就采取了这个定时任务的方式解决办法. 首先根据网页提供 ...

  5. linux设定vnc锁屏时间,3. 设置VNC和时间同步

    # 设置VNC 这里的通过vnc方式访问虚拟机不是在kvm虚拟机安装配置vnc服务器,通过虚拟主机的IP地址与端口进行访问,kvm虚拟化对vnc的支持相对来说比xen要好很多,在虚拟主机上配置VNC访 ...

  6. Linux 定时任务 定时备份mysql数据

    首先查看服务器是否安装 crontab crontab 执行 crontab 命令如果报 command not found,就表明没有安装 安装 crontab yum install -y vix ...

  7. linux mint 更改锁屏壁纸

    cd /usr/share/backgrounds/linuxmintsudo cp /home/.../壁纸.jpg .sudo rm default_background.jpgsudo ln - ...

  8. 定时监控Ubuntu系统HDMI热插拔进行锁屏操作

    目录 一.简介 二.检测HDNI热插拔状态 三.取HDMI状态值 四.编写逻辑判断 五.定时锁屏

  9. centos linux怎么关闭锁屏时间,【Centos】Centos7.5取消自动锁屏功能

    00. 目录 @ 01. 问题描述 Centos7.5系统在用户闲置一段时间(默认为5分钟)后,会启动屏幕保护程序(默认的屏保为黑屏),并要求重新输入密码才能回到原来桌面.如果是管理员,建议开启自动锁 ...

  10. 如何修改Linux的锁屏时间,调整Kali Linux的锁屏时间

    调整Kali Linux的锁屏时间 锁屏是保护隐私的一种重要机制.当用户不操作电脑一段时间后,系统会进入锁屏状态.用户需要输入口令,才能重新进入系统.避免因为操作人员离开电脑后,被其他人员利用现有帐号 ...

最新文章

  1. Linux基础服务_DNS原理以及正反向DNS配置
  2. python基础07_tuple_dict
  3. MATLAB数字信号处理函数
  4. Java “\”与\\的替换
  5. php 类 private,有关php类的private属性继承问题详解
  6. java二级考纲_二级JAVA程序设计考试大纲
  7. 树莓派自启动配置端口映射及启动jar
  8. ubuntu18.04安装CH340和CH341驱动
  9. Excel排序、筛选
  10. spss的独立样本T检验
  11. Microsoft Remote Desktop 10 - 微软官方免费远程桌面控制 Windows 的软件 APP
  12. GB2312和UTF-8
  13. Java PDF生成方案介绍及问题汇总
  14. msvcr100.dll丢失怎么办?msvcr100.dll丢失的解决方法
  15. linux完美卸载编译的php,完美卸载linuxoracle的方法
  16. python绘制3d动态模型_python+matplotlib库绘制数学3d模型分析图
  17. rocketmq client端源码分析(1)-consumer实现
  18. 百度APIak和sk
  19. 三星电视:科技创新塑造美好生活,绿色行动守护地球明天
  20. 密码学:分组密码.(块密码:是一种对称密码算法)

热门文章

  1. win32,使用PDFlib生成PDF文件
  2. pmp培训机构哪个好?各pmp培训机构排名如何?
  3. 斩获双奖 | 悬镜安全亮相IDC 2022 CSO全球网络安全峰会
  4. Office2016+Visio2016安装教程(超简单)
  5. python cmath模块_python-cmath模块
  6. IC卡清卡软件的使用
  7. Linux镜像最全版本下载网站
  8. NetBeans IDE下载及安装
  9. 安装Python解释器【图文集合 - 详细流程】
  10. redhat7 linux修改语言,RedHatLinux7.1中语言化完全攻略(二)