如何完成这种控制?

sh/bash/dash/ksh/zsh等Shell脚本
回复
whaha
帖子: 100
注册时间: 2016-07-08 17:43
系统: debian8
送出感谢: 12 次
接收感谢: 0

如何完成这种控制?

#1

帖子 whaha » 2018-01-23 14:35

需求:电脑开机后50分钟,锁定屏幕,输入密码后,屏幕恢复,又可以使用。
我的实现方式:
编辑两个文件
vim a1.sh
echo "have a rest in "$1 " minutes"
at -f $HOME/a2.sh now+$1 minutes


vim a2.sh
xscreensaver-command --lock

电脑开机后,输入 sh a1.sh 50
50分钟后,自己可以休息一下,休息好后,输入密码,屏幕恢复。
然后再次输入 sh a1.sh 50

每次休息好后,输入密码,等屏幕恢复后,在terminal中输入 sh a1.sh 50

这样有点笨了,我想改造一下
a2.sh增加一些内容
接收屏幕恢复的信号后,发送一个控制信号给a1.sh
a1.sh接收后,自动运行at -f $HOME/a2.sh now+$1 minutes
请问,如何改造a1.sh a2.sh来实现 ?
funicorn
帖子: 1131
注册时间: 2005-09-13 4:56
系统: Ubuntu QQ
送出感谢: 0
接收感谢: 47 次

Re: 如何完成这种控制?

#2

帖子 funicorn » 2018-01-23 14:50

你的整体思路不好,man一下start-stop-daemon,全过程都用daemon来控制。
添加ppa后只更新此ppa:
update-ppa()
{ sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/$1.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
}
写入~/.bashrc,source一下,就可以直接用,是不是很方便?觉得方便就按个赞。
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 如何完成这种控制?

#3

帖子 lilydjwg » 2018-01-23 14:53

就是每次会话使用了50分钟就自动锁屏呗。在 D-Bus 上,logind 有个 Unlock 信号,解锁之后就会发送。当然你也可以直接用 logind 服务来锁屏。
回复

回到 “Shell脚本”