在没有 TTY 的情况下附加到 cron 程序的最佳方法是什么

在没有 TTY 的情况下附加到 cron 程序的最佳方法是什么

我的 ubuntu VM 不cron使用 TTY 运行作业(即使当我登录并从用户的环境运行命令时也是如此)。

因此, cron 无法运行tmuxscreen,从而阻止程序(特别是rtorrent在本例中)以简单且可附加的方式在后台运行。

rtorrent运行程序(例如在启动时)同时使从任何终端轻松附加、分离和终止进程的最佳方法是什么?

我认为只需运行相当于rtorrent &即可完成的操作,但这不如 screen/tmux 方便。

答案1

如果您将该-d选项与 一起使用tmux new,它将不会附加到或需要 tty。从man tmux

new-session [-AdDEP] [-c start-directory] [-F format] [-n window-name]
            [-s session-name] [-t group-name] [-x width] [-y height]
            [shell-command]
            (alias: new)

创建一个名为 session-name 的新会话。

-d除非给出,否则新会话将附加到当前终端。 [...]

例如:

tmux new -d -s rtorrent rtorrent

这将创建一个tmux名为“rtorrent”的新会话并rtorrent在其中运行。

您可能需要配置~/.tmux.conf并运行脚本来启动rtorrent(而只是裸rtorrent命令),以便正确设置运行环境。

拥有 cron 作业的用户可以随时通过以下方式附加到会话:

tmux attach -t rtorrent

屏幕的等效项是

screen -d -m -S rtorrent rtorrent

从 cron 作业并screen -S rtorrent -rd稍后附加。

相关内容