非交互式程序到底是什么?

非交互式程序到底是什么?

manwget说页面

NAME
   Wget - The non-interactive network downloader.

DESCRIPTION
   Wget is non-interactive, meaning that it can work in the background,
   while the user is not logged on.  This allows you to start a retrieval
   and disconnect from the system, letting Wget finish the work.  By
   contrast, most of the Web browsers require constant user's presence,
   which can be a great hindrance when transferring a lot of data.

wget是我所知道的非交互式程序的一个例子。现在我的问题是,

  • wget无需用户登录如何使用?
  • 非交互式程序如何工作?

答案1

如何在没有用户登录的情况下使用 wget?

通过将 wget 命令包含在守护进程/服务或您作为用户不启动下载的程序中。

非交互式程序如何工作?

当您创建守护进程并激活该守护进程时,它可以继续探测服务器并请求下载。如果服务器死机,则非交互式程序将在服务器恢复后继续运行,无需用户采取任何行动。

例如,更新 Ubuntu 无需用户采取任何操作,甚至无需登录即可完成。

答案2

对我来说,在您未登录时运行程序的最简单方法是在 crontab 文件中包含一行:

# m h  dom mon dow   command
*/30 * * * * test -x /home/koju/bin/yourscript && /home/koju/bin/yourscript

进行测试是为了避免cron在无法找到脚本时通过电子邮件收到投诉。有关第一个字段的格式,请查看man 5 crontab

yourscript你调用 wget,因为它是非交互式它不会提示您通过要求输入来进行交互。只要命令行选项为wget您提供了所需的信息,上述设置就会每 30 分钟为您运行一次。

当然,yourscript在定期运行它之前,您应该手动启动它进行测试。您可能会发现 wget 功能不够强大,无法满足您的要求,尤其是在需要基本登录以外的用户交互的网页上。

相关内容