问题标签 [nohup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3855 浏览

python - Fabric 无法使用 nohup 调用远程脚本

在远程服务器中,我有一个脚本 test.sh,例如:

从本地,我运行'fab runtest'来调用远程test.sh。

我可以得到输出“我在这里!”,但我无法在远程服务器中找到睡眠过程。我错过了什么?

谢谢!

0 投票
2 回答
663 浏览

session - 为什么终端关闭时后台进程组死机

根据这个常见问题解答(以及许多其他书籍):

ftp://rtfm.mit.edu/pub/faqs/unix-faq/programmer/faq

1.15 为什么我的进程在它的父进程死亡时没有得到 SIGHUP?

当没有一个“停止”时,SIGHUP 不会被发送到后台进程。

但是我们都知道,如果没有在后台进程中捕获 SIGHUP,那么当您关闭终端(或像 ssh 之类的连接)时,它们就会死掉。

即 CTRL+Z - bg 不足以让进程在终端关闭时存活下来。

但为什么?任何智慧都值得赞赏!

0 投票
1 回答
4677 浏览

python - 带有 utf-8 和 nohup 的 python 打印语句

我有一些打印日志消息的 python 代码。在命令行运行时,它可以使用 utf-8。包含特殊字符的日志消息打印良好。但是,当在 nohup 下在后台运行时,它会输出 utf-8 字符。

我看到的错误是通常的“尝试在 ascii 中编码 utf”错误:

UnicodeEncodeError:'ascii' 编解码器无法在位置 71 编码字符 u'\u2013':序数不在范围内(128)

我认为这是因为 nohup 向 python 发出信号,表明它没有正常的终端,所以它默认为 ascii。有没有办法告诉 nohup 在启用 utf-8 的情况下运行,或者设置它以便在后台在 nohup 下运行时 utf-8 字符不会导致崩溃?

0 投票
5 回答
41277 浏览

python - 从python运行程序,并在脚本被杀死后继续运行

我试过运行这样的东西:

如果父脚本正常退出,则此方法有效,但如果我终止脚本(Ctrl-C),我的所有子进程也会被终止。有没有办法避免这种情况?

我关心的平台是 OS X 和 Linux,使用 Python 2.6Python 2.7。

0 投票
5 回答
43142 浏览

bash - 如何在 bash 脚本中包含 nohup?

我有一个名为mandacalc的大型脚本,我想始终使用nohup命令运行它。如果我从命令行调用它:

一切都运行得很快。但是,如果我尝试在我的命令中包含nohup,这样我就不需要在每次执行它时都输入它,我会收到一条错误消息。

到目前为止,我尝试了这些选项:

并且:

到目前为止,我只收到抱怨nohup命令的实施或脚本中使用的其他引号的错误消息。

干杯。

0 投票
1 回答
5915 浏览

ssh - jsch ChannelExec 运行带有 nohup 的 .sh 脚本“丢失”一些命令

我有一个 .sh 脚本,它粘合了许多其他脚本,由 Windows 应用程序中的 jsch ChannelExec 调用。

如果我运行“nohup /foo/bar/foobar.sh >> /path/to/foo.log &”之类的命令,所有长期作业(数据库操作、文件处理等)似乎都会丢失。

检查日志文件,只找到那些回显的东西(长期操作之前和之后,计算运行时间等)。

我检查了权限 $PATH,将源 /etc/profile 添加到我的 .sh 中,但这些都不起作用。

但是当我正常运行命令时(同步运行,将所有回显输出打印到 Windows 上的 java 客户端),一切顺利。

这是一个非常具体的问题。希望有经验的人能帮帮我。

预先感谢。

0 投票
2 回答
650 浏览

process - 在没有 nohup 的情况下保持进程存活

我在服务器上启动了一个脚本并没有使用nohup,但我必须断开连接。有什么办法可以让它继续运行吗?这是一个漫长的 27 小时过程。

0 投票
2 回答
3733 浏览

java - Java 日志记录和 Unix Nohup 问题

我创建了一个小程序,它在某些操作上将文本数据记录到文件中。我正在访问由 Putty 部署程序的远程系统。我已经使用 nohup 运行了程序,这样即使我关闭了我的 shell,它也能继续运行。直到我登录到 shell 时,它才会继续记录数据。但是,一旦我退出我的 shell,它就会停止写入日志文件。我的程序仍然继续运行,只是它没有写入日志文件。我正在使用 Java 1.6 + slf4j+log4j 进行日志记录。操作系统是 Ubuntu。

将不胜感激一些帮助。

编辑: 我的 log4j.properties

我正在运行的命令是:

0 投票
2 回答
205 浏览

bash - 令人尴尬的简单 bash 脚本帮助

谁能告诉我这个脚本有什么问题?我需要先做#!/bin/bash 吗?另外,我可以按照它的编写方式 nohup 这个脚本,还是我必须删除 if-else 语句中的 nohup?我真的不知道 bash 的 if-else 和 for 循环的所有语法......对不起,如果这是一个如此简单的问题。感谢您的帮助!

编辑(从评论发布更新)

我正在尝试索引一个名为 actor 的目录,其中包含 1000 个包含文件的子目录。java 程序会运行,但它无法处理这 1000 个目录(约 180 万个)中的所有文件。我想编写一个脚本,一次执行子目录。

我正在通过 ssh 进入服务器来执行此操作,但这需要一段时间,所以我希望它不会丢失。我不能只在整个目录上运行 java 程序,因为它耗尽了堆内存。它不是最有效的 java 代码,但是当这个脚本一次运行子目录时,我正在研究另一个解决该问题的方法。

0 投票
3 回答
1373 浏览

bash - ssh,nohup,然后将结果复制回来

我想要一个脚本,它可以自动在远程机器上运行大型数学计算作业。目前我这样做:

  • ssh进入远程机器;运行matlab脚本
  • 定期检查以查看工作是否已完成
  • 工作完成后,我scp将包含结果的文件手动返回到我的家用机器。

我尝试在我的脚本中使用这些行来完成这项工作(注意脚本在我的机器上运行):

这行不通。一段时间后,ssh 会话结束,脚本继续执行 scp,即使作业尚未完成且文件尚不存在。

我认为我需要做的是定期检查工作是否完成,也许通过定期ssh'ing并使用grep读取nohup.out文件寻找信号。DONE!然后当我看到时,将文件复制回来。但这似乎很复杂,我不知道如何将DONE!消息返回到我的计算机以运行条件(如果您看到DONE信号,请执行此操作...)任何想法?