我正在通过 SSH 对长时间运行的数据迁移脚本进行一些测试。假设我在下午 4 点左右开始运行脚本;现在,下午 6 点左右,我诅咒自己没有全力以赴screen
。
有什么办法可以“追溯”nohup
一个进程,还是我需要整晚让我的电脑在线?如果无法附加screen
到/nohup
我已经开始的进程,那为什么?与父/子进程的交互方式有关吗?(我不会接受至少没有解决“为什么”问题的“否”答案——抱歉;))
我需要运行脚本,这需要很长时间才能执行,或者我只想让它永远运行。我不能只通过 SSH 连接到我的机器,因为当我断开连接时它会停止运行。
有没有办法运行不依赖于启动它的 shell 的脚本?
我正在使用 Ubuntu 9.04。
是否可以让进程以 nohup 启动,写入标准输出而不是文件?或者可能在文件和屏幕上?
nohup python start.py &
Run Code Online (Sandbox Code Playgroud)
写入nohup.out
,但我希望它输出到屏幕上, nohup 仅在连接中断时用作对冲。
我的nohup.out
文件正在快速增长。
我在后台运行一个应用程序,它正在写入nohup.out
文件,
现在我需要在nohup.out
不杀死我的应用程序的情况下旋转文件。这能做到吗?
我见过很多例子,其中 a&
跟在命令字符串的末尾,但我似乎找不到它的作用的解释。它甚至不在nohup
的man
页面中。这是贝壳吗?
无论使用&
与否,我发现运行的任何进程nohup
似乎都对任何挂断信号具有免疫力。
nohup 在后台运行一个进程。Windows 有什么等价物吗?
在 linux 系统上,当被 nohup 的进程需要输入时,是否有任何方法可以使用 nohup,例如需要输入密码但随后会自行愉快运行的 rsync 命令?
在 Ubuntu 10.04 上,我有一个很长的 Python 程序,可以打印一堆输出;我在“nohup”下运行它。但是,它会等到最后将所有文本放入 nohup.out 中。当我在 FreeBSD 下运行类似的程序时,每一行都会被发送到 nohup.out。是否有我可以设置的 Ubuntu 设置来更快地获得输出?
我需要nohup
两个命令,一个接一个。第二个命令必须在第一个命令之后执行。以下是命令:
tar -zcf archive.tar.gz.tmp mydir
mv archive.tar.gz.tmp archive.tar.gz
Run Code Online (Sandbox Code Playgroud)
我需要命令在后台运行,但显然不能同时运行。第二个命令必须在第一个命令完成后运行。我试过这个:
nohup tar -zcf archive.tar.gz.tmp mydir ; mv archive.tar.gz.tmp archive.tar.gz > /dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)
但命令不在后台运行。bash 提示符会等到这两个命令完成后再给我另一个提示符。我需要它们在后台运行。
如果我做:
nohup tar -zcf archive.tar.gz.tmp mydir > /dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)
这完美地在后台运行。只有当我尝试执行多个命令时。
我也试过:
nohup tar -zcf archive.tar.gz.tmp mydir > /dev/null 2>&1 & ; mv archive.tar.gz.tmp archive.tar.gz > /dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)
但这也不起作用。无效的语法什么的。我确定有一种方法可以做到这一点,但我不确定语法。
我能想到的唯一替代方法是将命令放入一个.sh
文件中并 nohup 该文件,但这不一定是我可以在 linux 系统上执行的操作,我必须在其上实现(权限限制等)。
有没有一种“本地”方式可以将 nohup 旋转出文件?