标签: nohup

使用nohup调用函数

我试图nohup像这样调用一个函数:

function1(){
    while true 
    do
        echo "function1"
        sleep 1
    done
}

nohup function1 & 
# ...... some other code
Run Code Online (Sandbox Code Playgroud)

但可能是看不到的功能nohup,我得到这个错误:

nohup: failed to run command `function1' : No such file or dictionary
Run Code Online (Sandbox Code Playgroud)

我不想为我的函数创建新的sh文件.我怎样才能解决这个问题?

linux bash shell function nohup

16
推荐指数
5
解决办法
2万
查看次数

使用utf-8和nohup的python print语句

我有一些打印日志消息的python代码.在命令行运行时,使用utf-8就可以了.包含特殊字符的日志消息打印正常.但是,当在nohup下在后台运行时,它会在utf-8字符上进行barfs.

nohup python2.7 myProgram.py &
Run Code Online (Sandbox Code Playgroud)

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

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

我认为这是因为nohup向python发出信号,表示它没有正常的终端,因此默认为ascii.是否有任何方法可以告诉nohup在启用utf-8的情况下运行还是设置它以便utf-8字符在后台运行nohup时不会导致崩溃?

python utf-8 nohup

15
推荐指数
1
解决办法
4266
查看次数

将nohup的stderr重定向到nohup.out

如何运行一个命令nohup,使两者的输出和错误保存到nohup.out?默认情况下,仅保存stdout并丢弃stderr.

bash shell stdout nohup stderr

15
推荐指数
1
解决办法
1万
查看次数

如何使用Terraform配置启动远程服务?

我希望我的Terraform配置通过调用命令来配置服务器并在最后启动服务并继续运行它.我尝试使用nohup和屏幕使用remote-exec:

nohup的:

provisioner "remote-exec" {
 inline = "nohup sudo command &"
}
Run Code Online (Sandbox Code Playgroud)

屏幕:

provisioner "remote-exec" {
 inline = "screen -d -m sudo command"
}
Run Code Online (Sandbox Code Playgroud)

我通过手动登录来检查命令是否正在运行.但他们没有保持流程运行.如果我手动尝试这些命令并且使用ssh调用它们也可以.

如何在返回控制流时使用Terraform配置来启动命令并使其保持运行?

gnu-screen nohup terraform

14
推荐指数
1
解决办法
2534
查看次数

Python + Ubuntu Linux + nohup错误:[1] +退出

我有一个python脚本,practice_one.py我希望它在Ubuntu Linux中永远运行,并具有以下内容:

while True:
   #    Code
Run Code Online (Sandbox Code Playgroud)

我尝试了nohup python practice_one.py &但得到了消息nohup: ignoring input and appending output to ‘nohup.out’.

然后当我按下回车键时,输出另一条消息: [1]+ Exit nohup python practice_one.py

怎么会自动退出?我能做错什么?

编辑

尝试: nohup python practice_one.py </dev/null &>/dev/null &

并获得[1] 61122然后当我按回车键我有[1]+ Exit nohup python practice_one.py </dev/null &>/dev/null &

它曾经工作但现在退出..现在可能是什么问题?

python linux ubuntu nohup python-2.7

13
推荐指数
3
解决办法
2025
查看次数

当我退出shell时,为什么unix后台进程有时会死?

我想知道为什么我在Bash shell的后台进程中看到了不同的行为

案例1:使用Putty(SSH)登录Unix服务器

  • 默认情况下,它使用csh shell
  • 我改成了bash shell
  • 键入睡眠2000&
  • 按回车键

它给了我工作号码.现在我通过点击putty窗口中的x来杀死我的会话现在打开另一个会话并尝试查找进程...该进程已经死亡.

案例2:案例1:使用Putty(SSH)登录Unix服务器默认情况下,它使用csh shell

  • 我改成了bash shell
  • vi mysleep.sh
  • 睡2000和保存mysleep.sh
  • ./mysleep.sh

这里的Diff是..而不是直接执行sleep命令我将sleep命令存储在文件中并执行文件.

现在我通过点击putty窗口中的x来杀死我的会话现在打开另一个会话并尝试查找进程...过程仍然存在

不知道为什么会这样.我认为我需要在bash中使用,即使在注销后也要运行该过程.

在父进程id中看到一个差异.在第二种情况下,sleep 2000的父进程id变为1.看起来只要mysleep.sh的进程死了,内核就将父进程分配给1.

unix bash putty csh nohup

12
推荐指数
3
解决办法
1万
查看次数

nohup作为后台任务不返回提示

我试图在后台运行长时间运行的任务,而无需再进行登录,并在终端返回一个提示,但我这样做的时候,任务似乎进入到了后台,但我的提示不变得可用,除非我命中控制+ c.我想运行任务,然后回复我的提示.

[staging@php-pos-web ~]$ nohup php test.php > test.txt &
[1] 27251
[staging@php-pos-web ~]$ nohup: ignoring input and redirecting stderr to stdout
Run Code Online (Sandbox Code Playgroud)

nohup

12
推荐指数
1
解决办法
1万
查看次数

如何在bash脚本中包含nohup?

我有一个名为mandacalc的大脚本,我想总是使用nohup命令运行.如果我从命令行调用它:

nohup mandacalc &
Run Code Online (Sandbox Code Playgroud)

一切都很快.但是,如果我尝试在命令中包含nohup,那么每次执行它时我都不需要输入它,我收到一条错误消息.

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

nohup (
command1
....
commandn
exit 0
)
Run Code Online (Sandbox Code Playgroud)

并且:

nohup bash -c "
command1
....
commandn
exit 0
" # and also with single quotes.
Run Code Online (Sandbox Code Playgroud)

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

干杯.

unix bash shell nohup

11
推荐指数
4
解决办法
3万
查看次数

nohup不能与OS X Yosmite一起使用 - 得到错误"无法从控制台分离没有这样的文件或目录"

我使用nohup从php应用程序运行命令(我有一个网页,发送POST请求到php服务器,在后台启动一个shell脚本).

就像这样

exec('nohup /home/user/test.sh > /home/user/test.log 2>&1 &')
Run Code Online (Sandbox Code Playgroud)

当我使用OS X Snow Leopard(OS X 10.6)时,这很好用.但是,最近我将我的MAC升级到OS X Yosemite(OS X 10.10),现在它不再起作用了.

在test.log中,我总是收到消息:nohup can't detach from console: no such file or directory.

如果我只是直接在bash中运行相同的命令,它工作正常.我做了很多搜索,但似乎我找不到任何有用的问题.我只看到关于詹金斯的讨论,似乎他们也看到了类似的问题.

任何人都知道为什么它会与优胜美地开始失败?任何输入将不胜感激.

macos nohup osx-snow-leopard osx-yosemite

11
推荐指数
1
解决办法
3620
查看次数

使用带有nohup的别名

以下为什么不工作?

$ alias sayHello='/bin/echo "Hello world!"'
$ sayHello 
    Hello world!
$ nohup sayHello
    nohup: appending output to `nohup.out'
    nohup: cannot run command `sayHello': No such file or directory
Run Code Online (Sandbox Code Playgroud)

(我问这个问题的原因是因为我把我perlpython不同的perl/python二进制混淆了,这些二进制文件是为了我自己的目的而优化的;但是,如果我不提供perl/python二进制文件的完整路径,nohup会给我带来麻烦)

unix bash alias nohup

10
推荐指数
3
解决办法
6013
查看次数