简体   繁体   English

Linux“屏幕”将不会从磁盘读取

[英]Linux 'screen' will not read from disk

I am running a simple multithreaded producer/consumer framework in Java to do some processing. 我正在Java中运行一个简单的多线程生产者/消费者框架来进行一些处理。 The framework reads from some files, process the data, and writes some results back to disk. 该框架从一些文件读取,处理数据,并将一些结果写回到磁盘。

My problem is the following: Because of (very) high memory footprint on the processing, all processing must be done in batches in the following manner: 我的问题如下:由于处理中的内存占用非常大,因此必须以以下方式分批完成所有处理:

1 - Start the framework 1-启动框架

2 - Do the processing 2-进行处理

3 - Shutdown the framework 3-关闭框架

which are all in a shell script. 这些都在shell脚本中。 To do this I open a screen so the processing can continue even when I am not around, and start the shell script. 为此,我打开一个屏幕,以便即使我不在时也可以继续进行处理,然后启动Shell脚本。 However, what I experience is that if I disconnect the screen (CTRL-A + D) the framework will complain that it, all of a sudden, cannot find the java byte-compiled classes of the framework. 但是,我的经验是,如果我断开屏幕(CTRL-A + D),框架将抱怨它突然找不到框架的Java字节编译类。 This problem goes away completely if I don't disconnect the screen. 如果我不断开屏幕的连接,此问题将完全消失。

This is really frustrating, and I don't understand why. 这真令人沮丧,我不明白为什么。 I have re-installed screen several times (Debian-based system) and I have access to other servers where this problem don't exist when I move the code/data to them and process there. 我已经重新安装了几次屏幕(基于Debian的系统),并且可以访问其他服务器,在我将代码/数据移至其他服务器并在那里进行处理时,就不会出现此问题。 Unfortunately these servers are (technically) off limit so I can do the full processing there. 不幸的是,这些服务器(在技术上)超出了限制,因此我可以在那里进行完整的处理。

Any advice on how to proceed? 关于如何进行的任何建议?

** UPDATE ** **更新**

Here is some output after I disconnect the screen: 这是我断开屏幕后的一些输出:

/edu/process/TOB.java:3: warning: PNGImageReaderSpi is internal   
proprietary API and may be removed in a future release
import com.sun.imageio.plugins.png.PNGImageReaderSpi;
                              ^
/edu/process/LPR.java:125: warning: [unchecked] unchecked conversion
Dist<Double> d = new Dist("");
                             ^
required: Dist<Double>
found:    Dist
2 warnings
Error: Could not find or load main class edu.process.DService

The warning etc are ok and I have checked thoroughly that they do not interfere with the processing. 警告等还可以,我已经彻底检查了它们不会干扰处理。 It is the error. 这是错误。 This is the main class that runs everything and after I disconnect the screen it just says it no longer exist. 这是运行所有内容的主要类,在我断开屏幕连接后,它只是说它不再存在。

重新安装后问题解决。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM