小编Che*_*hen的帖子

linux用户如何在没有root权限的情况下更改密码?

我注意到普通用户可以在没有 sudo 的情况下更改自己的密码。但据我所知,更改密码必须编写只能由 root 访问的 /etc/shadow 文件。

怎么会这样??

linux privilege

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

谁杀了My Java Infinite循环线程?

正如标题所示,我有一些代码包含在一个while(true)无限循环中,并且所有代码都被完全捕获trycatch阻塞.这个线程是在main方法中启动的,但是,经过长时间运行,当我使用jstack检查并导致工作累积时,这个工作线程会神秘地消失.

以下是我的代码:

public void run() {
    while (true) {
        try {
            // Consumer consumes from Kafka server
            Global.KAFKA_METRIC_DATA_CONSUMER.consume(topic, handler);
        } catch (Exception e) {
            logger.error("Kafka consumer process was interrupted by exception!");
        } finally {
            try {
                // Prevent restart too often
                Thread.sleep(30 * BaseConst.SECOND);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这个结构将保持线程运行,因此是消费者.即使consume()方法失败,它也会无限重启.但是,正如我上面提到的,整个线程无声地消失,没有任何错误日志.有人能提供一些线索吗?

一些可能有用的信息:

  1. 我已经检查过consume方法永远不会关闭使用者,也不会关闭服务器的套接字.它将在失败后不断尝试连接服务器.
  2. 我分析了java堆转储,我发现项目中的其他地方存在内存泄漏,导致内存占用非常高,gc经常出现.但是,主要方法仍在运行.

java multithreading jvm memory-management kafka-consumer-api

4
推荐指数
1
解决办法
522
查看次数