【问题标题】:How do I create an application that runs in the background and is interactive in Linux?如何创建在后台运行并在 Linux 中交互的应用程序?
【发布时间】:2014-04-05 01:29:03
【问题描述】:

我想创建一个在 Linux(守护进程)后台运行的应用程序,它基本上会在设定的时间(5 次)播放音乐文件或每天发出的任何声音。我希望这个守护进程在计算机以终端模式(非 GUI)启动时启动。我想知道这是否可行,如果可以,这样做最有效的考虑因素、工具和编程语言是什么?这将是一台仅执行此任务的专用计算机,因此,如果有任何关于如何在禁用此任务不需要的其他功能的同时最大限度地提高效率的建议,我们将不胜感激。另外,您能否解释一下流程和任务在终端(非 GUI)中是如何工作的?我一直认为终端类似于 Windows 中的 CMD,一次只能运行一个任务。

编辑:我需要声音在可变时间运行,我将从网站获取这些时间。关于如何实现这一点的任何建议?

感谢您的帮助,对于问题或我的研究中的任何不足之处,我们深表歉意。

【问题讨论】:

    标签: linux scheduled-tasks daemon audio


    【解决方案1】:

    看看使用cron 来运行你的任务。 cron 是一个非常灵活的调度实用程序,内置于大多数 Linux 发行版中。

    基本上,使用cron,您可以指定要运行的任务(您的主程序,或者可能只是一个声音播放程序)、它的所有参数以及它何时运行。 cron 负责运行它,如果作业产生任何输出(例如错误),甚至会向您发送“邮件”。

    【讨论】:

    • 我需要声音在可变时间运行,我将从网站获取这些时间。 chron 能做到这一点吗?
    【解决方案2】:

    您可以将进程派生到终端的子进程中,即您可以通过在终端命令后添加& 来一次运行多个任务:

    > cmd&
    > [you can type other commands here but the "cmd" program is still running]
    

    但是,对于服务,您通常不必担心将其作为子进程启动,因为系统已经知道要这样做。这是a good question from Super User,它有一个工作服务的例子。只需将您的服务作为 shell 脚本放在 /etc/init.d 中,它就会自动作为服务启动。

    【讨论】:

    • 我编辑了我的问题。我需要声音在可变时间运行,我将从网站获取这些时间。我可以通过创建一个简单的脚本来做到这一点吗?另外,我在您的答案中看不到任何链接。
    • @Tech1337 添加了链接。服务始终在后台运行,因此您只需要有一个轮询功能,每隔 x 秒查看一次网站,然后相应地播放声音。 Cron 通常用于按设定的时间表运行并在任务完成后停止执行的程序,不适合您的情况。
    猜你喜欢
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 2018-09-03
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    相关资源
    最近更新 更多