我如何处理停止的工作,除非取得前景,否则无法继续?


0

最近的例子:mountlo(使用UML):

vi @vi-notebook:〜/ b $ mountlo -m 16 -d / dev / uba1 / home / vi / mnt / usb -t vfat -o iocharset = utf8,allow_other&
[1] 32561
vi @vi-notebook:〜/ b $检查ptrace是否可以更改系统调用号... OK
检查ptrace的系统调用仿真补丁...确定
检查ptrace的高级系统调用仿真补丁...确定
检查/tmp...OK中的PROT_EXEC mmap
检查主机中的skas3补丁:
  -  /proc/mm...not找不到
  - 找不到PTRACE_FAULTINFO
  - 找不到PTRACE_LDT
UML在SKAS0模式下运行


[1] +停止mountlo -m 16 -d / dev / uba1 / home / vi / mnt / usb -t vfat -o iocharset = utf8,allow_other
vi @vi-notebook:〜/ b $ bg
[1] + mountlo -m 16 -d / dev / uba1 / home / vi / mnt / usb -t vfat -o iocharset = utf8,allow_other&

[1] +停止mountlo -m 16 -d / dev / uba1 / home / vi / mnt / usb -t vfat -o iocharset = utf8,allow_other
vi @vi-notebook:〜/ b $ bg
[1] + mountlo -m 16 -d / dev / uba1 / home / vi / mnt / usb -t vfat -o iocharset = utf8,allow_other&

[1] +停止mountlo -m 16 -d / dev / uba1 / home / vi / mnt / usb -t vfat -o iocharset = utf8,allow_other
vi @vi-notebook:〜/ b $ bg
[1] + mountlo -m 16 -d / dev / uba1 / home / vi / mnt / usb -t vfat -o iocharset = utf8,allow_other&

[1] +停止mountlo -m 16 -d / dev / uba1 / home / vi / mnt / usb -t vfat -o iocharset = utf8,allow_other
vi @vi-notebook:〜/ b $ fg
mountlo -m 16 -d / dev / uba1 / home / vi / mnt / usb -t vfat -o iocharset = utf8,allow_other
Linux版本2.6.15(miko @ dorka)(gcc版本3.3.5(Debian 1:3.3.5-13))#1 Mon Feb 27 13:27:52 CET 2006
(正常输出)
...

vi @vi-notebook:〜/ b $ socat  -  exec:'mountlo -m 16 -d / dev / uba1 / home / vi / mnt / usb -t vfat -o iocharset = utf8 \,allow_other',pty,ctty
fusermount:waitpid:没有子进程
六@六笔记本:〜/ B $ 

Gimp也会发生这种情况(当它运行它的插件时)。Gimp的部分由`gimp q.jpg&'开始冻结,除非“killall -CONT”或前景,否则无法继续。

这是一个错误吗?我如何可靠地在后台启动东西?

Answers:


0

这可能不是一个错误。有时程序想要或需要与标准输入(STDIN)通信。例如,它可能想问一个问题。但程序无法执行此操作,除非它在前台运行,因此您会收到“已停止”通知。然后,您可以使用'fg'将其带到前台。有时它可以从某个文件重定向标准输入,但是您可能需要知道该文件中要放什么。你可以尝试从/ dev / null重定向,它应该始终可用于程序,即使它在后台运行。要使用从/ dev / null重定向的STDIN运行,您可以执行以下操作:

$ program arg1 arg2 arg3 ... </dev/null

有些时候程序会坚持认为STDIN是一个终端,所以这可能不起作用,如果程序期待一些数据,它可能无论如何都无法工作。最重要的是,有些程序希望以交互方式工作,并且在后台运行时无法正常工作。


是的,它与STDIN交互。尚无法实施变通方法以使其正常工作。yes "" | mountlo ....是最接近的。
Vi。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.