ors*_*iro 11 command-line software-recommendation schedule
示例用例:
我想每 3 小时定期启动Telegram Desktop,持续 15 分钟,以检查新传入的消息。15 分钟后,应用程序应再次关闭并在接下来的 3 小时后重新启动。
当然,首先想到的是使用cron. 是否使用 cron,或一个小的后台脚本主要是一个品味问题。
cron 的优点是它与现有进程挂钩(尽管脚本对处理器负载实际上没有任何添加)。
后台脚本的优点是更加灵活;如果您想更改时间或其他设置,只需杀死它并使用其他参数运行它。您还可以在其他应用程序中重复使用它,而无需进行其他设置,只需一个命令即可。
下面的脚本可以通过命令运行(例如)
python3 <script> <command_to_run_application> <cycle_time> <application_run_time> force
Run Code Online (Sandbox Code Playgroud)
如果设置了最后一个参数,则会强制终止应用程序。如果未设置,应用程序将正常关闭,以确保可能的更改等不会丢失。
python3 <script> <command_to_run_application> <cycle_time> <application_run_time> force
Run Code Online (Sandbox Code Playgroud)
cycle_run.py使用以下命令运行它:
python3 /path/to/cycle_run.py <command> <cycle_time> <application_run_time> force
Run Code Online (Sandbox Code Playgroud)
在哪里:
<command>是命令来运行应用程序(不--%u-section,在我的情况,从复制的.desktop文件:/home/jacob/Downloads/Telegram/Telegram)<cycle_time> 是以分钟为单位的(总)循环时间(在您的示例中为 3 小时 = 180)<application_run_time> 是应用程序应以分钟为单位运行的时间(在您的示例中为 15)force是一个可选参数,用于强制终止应用程序。只需离开它即可优雅地终止应用程序。如果您运行带有参数的应用程序,请确保在命令周围使用引号来运行该应用程序,例如:
python3 /path/to/cycle_run.py 'gedit /home/jacob/Desktop/test.sh' 30 5
Run Code Online (Sandbox Code Playgroud)
定期启动和终止应用程序通常只需要最小化和/或在托盘中。根据 OP 的要求,对此发表一些评论:
如果应用程序提供从命令行在托盘中启动,只需使用参数即可。在 的情况下Telgram,要使用的参数是:
-startintray
Run Code Online (Sandbox Code Playgroud)
虽然选择似乎不是在所有系统上工作(它在我的),如提及这里。你将不得不在你的情况下进行测试。
如果应用程序没有提供最小化或托盘启动的命令行选项,我建议将(这个)脚本与这里的(我建议使用pid- 版本)结合使用,这将使启动成为可能应用程序最小化。
编辑您的 croncrontab -e
并将此行添加到您的 crontab 中,以每 3 小时将其作为计划作业运行
00 */3 * * * * ~/killtelegram.sh >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)2.打开你的终端并输入以下命令
touch ~/killtelegram.sh
chmod +x ~/killtelegram.sh
Run Code Online (Sandbox Code Playgroud)
用你喜欢的编辑器打开 killtelegram.sh 并写如下
#!/bin/bash
telegram &
sleep 15m
pkill telegram
Run Code Online (Sandbox Code Playgroud)
保存并退出
就是这样。它将每 3 小时自动打开一次,并停留 15 分钟,然后它会被杀死。
| 归档时间: |
|
| 查看次数: |
1733 次 |
| 最近记录: |