我的 ubuntu VM 不cron
使用 TTY 运行作业(即使当我登录并从用户的环境运行命令时也是如此)。
因此, cron 无法运行tmux
或screen
,从而阻止程序(特别是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
稍后附加。