응답: Archlinux에서 Connexion이 거부됨

15922 단어 leiningen
필요한 경우

묘사

구성:
$ uname -a
Linux arch 4.3.0-1-ARCH #1 SMP PREEMPT Mon Nov 2 16:52:35 CET 2015 x86_64 GNU/Linux
$ lein version
Leiningen 2.5.3 on Java 1.7.0_91 OpenJDK 64-Bit Server VM
$  java -version
java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.2) (Arch Linux build 7.u91_2.6.2-1-x86_64)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
REPL에 연결하기가 어렵습니다.나는 이 문제를 이렇게 이해한다.
$ lein new issue
$ cd issue
$ lein repl
Exception in thread "main" java.net.ConnectException: Connection refused, compiling:(/tmp/form-init7654738477480788732.clj:1:73)
    at clojure.lang.Compiler.load(Compiler.java:7239)
    at clojure.lang.Compiler.loadFile(Compiler.java:7165)
    at clojure.main$load_script.invoke(main.clj:275)
    at clojure.main$init_opt.invoke(main.clj:280)
    at clojure.main$initialize.invoke(main.clj:308)
    at clojure.main$null_opt.invoke(main.clj:343)
    at clojure.main$main.doInvoke(main.clj:421)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at java.net.Socket.<init>(Socket.java:425)
    at java.net.Socket.<init>(Socket.java:208)
    at clojure.tools.nrepl$connect.doInvoke(nrepl.clj:184)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.tools.nrepl.ack$send_ack.invoke(ack.clj:47)
    at clojure.tools.nrepl.server$start_server.doInvoke(server.clj:157)
    at clojure.lang.RestFn.invoke(RestFn.java:619)
    at user$eval7514.invoke(form-init7654738477480788732.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6782)
    at clojure.lang.Compiler.eval(Compiler.java:6772)
    at clojure.lang.Compiler.eval(Compiler.java:6772)
    at clojure.lang.Compiler.load(Compiler.java:7227)
    ... 11 more
REPL server launch timed out.
#1321 질문에 대한 조언과 같이, 저는 Lein Headless를 시작해서 연결할 수 있습니다.
$ lein :headless
nREPL server started on port 36604 on host 127.0.0.1 - nrepl://127.0.0.1:36604
$ lein repl :connect nrepl://127.0.0.1:36604
Connecting to nREPL at nrepl://127.0.0.1:36604
REPL-y 0.3.7, nREPL 0.2.10
Clojure 1.7.0
OpenJDK 64-Bit Server VM 1.7.0_91-b01
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

user=> 
#leiningen에서 물어봤는데 제안에 따라 자바에서 jstack를 실행했습니다.
$ ps ax | grep java
 3556 pts/3    Sl+    0:30 java -Xbootclasspath/a:/home/josuah/.lein/self-installs/le
 4886 pts/4    Ss+    0:00 /usr/bin/grep java
$ jstack 3556
2015-11-18 04:14:39
Full thread dump OpenJDK 64-Bit Server VM (24.91-b01 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00007fdae4001000 nid=0x11ca runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"ClosingPipeCloser 360581176" daemon prio=10 tid=0x00007fdb08393800 nid=0xe38 in Object.wait() [0x00007fdada5c0000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000f52ecb60> (a java.lang.Thread)
    at java.lang.Thread.join(Thread.java:1281)
    - locked <0x00000000f52ecb60> (a java.lang.Thread)
    at java.lang.Thread.join(Thread.java:1355)
    at com.hypirion.io.Pipe.join(Pipe.java:120)
    at com.hypirion.io.ClosingPipe$OutCloser.run(ClosingPipe.java:111)
    at java.lang.Thread.run(Thread.java:745)

"PipeThread 360581176" daemon prio=10 tid=0x00007fdb081b3000 nid=0xe37 in Object.wait() [0x00007fdada6c1000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000f52c9640> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:503)
    at com.hypirion.io.RevivableInputStream.read(RevivableInputStream.java:140)
    - locked <0x00000000f52c9640> (a java.lang.Object)
    - locked <0x00000000f52c95b8> (a com.hypirion.io.RevivableInputStream)
    at java.io.InputStream.read(InputStream.java:101)
    at com.hypirion.io.Pipe$PipeOutputStream.run(Pipe.java:239)
    at java.lang.Thread.run(Thread.java:745)

"PipeThread 1815349000" daemon prio=10 tid=0x00007fdb0854f000 nid=0xe35 runnable [0x00007fdada7c2000]
   java.lang.Thread.State: RUNNABLE
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:272)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
    - locked <0x00000000f52e53a8> (a java.lang.UNIXProcess$ProcessPipeInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:107)
    at com.hypirion.io.Pipe$PipeOutputStream.run(Pipe.java:239)
    at java.lang.Thread.run(Thread.java:745)

"PipeThread 1870807730" daemon prio=10 tid=0x00007fdb08576800 nid=0xe34 runnable [0x00007fdada8c3000]
   java.lang.Thread.State: RUNNABLE
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:272)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
    - locked <0x00000000f52e32e0> (a java.lang.UNIXProcess$ProcessPipeInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:107)
    at com.hypirion.io.Pipe$PipeOutputStream.run(Pipe.java:239)
    at java.lang.Thread.run(Thread.java:745)

"process reaper" daemon prio=10 tid=0x00007fdb086ae800 nid=0xe33 runnable [0x00007fdb00061000]
   java.lang.Thread.State: RUNNABLE
    at java.lang.UNIXProcess.waitForProcessExit(Native Method)
    at java.lang.UNIXProcess.access$500(UNIXProcess.java:55)
    at java.lang.UNIXProcess$4.run(UNIXProcess.java:228)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

"RevivableReader 1254238582" daemon prio=10 tid=0x00007fdb0837c000 nid=0xe31 runnable [0x00007fdada9c4000]
   java.lang.Thread.State: RUNNABLE
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:243)
    at com.hypirion.io.RevivableInputStream$ThreadReader.run(RevivableInputStream.java:232)
    at java.lang.Thread.run(Thread.java:745)

"Service Thread" daemon prio=10 tid=0x00007fdb080b6800 nid=0xdee runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread1" daemon prio=10 tid=0x00007fdb080b4000 nid=0xded waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x00007fdb080b1000 nid=0xdec waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x00007fdb080af000 nid=0xdeb runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0x00007fdb08081800 nid=0xdea in Object.wait() [0x00007fdb01efd000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000cdab46f0> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    - locked <0x00000000cdab46f0> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" daemon prio=10 tid=0x00007fdb0807f800 nid=0xde9 in Object.wait() [0x00007fdb01ffe000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000cdab4458> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:503)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
    - locked <0x00000000cdab4458> (a java.lang.ref.Reference$Lock)

"main" prio=10 tid=0x00007fdb08009000 nid=0xde5 in Object.wait() [0x00007fdb12469000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000f52ead70> (a java.lang.Thread)
    at java.lang.Thread.join(Thread.java:1281)
    - locked <0x00000000f52ead70> (a java.lang.Thread)
    at java.lang.Thread.join(Thread.java:1355)
    at com.hypirion.io.Pipe.join(Pipe.java:120)
    at leiningen.core.eval$sh.doInvoke(eval.clj:183)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:630)
    at leiningen.core.eval$fn__5830.invoke(eval.clj:253)
    at clojure.lang.MultiFn.invoke(MultiFn.java:233)
    at leiningen.core.eval$eval_in_project.invoke(eval.clj:356)
    at clojure.lang.AFn.applyToHelper(AFn.java:160)
    at clojure.lang.AFn.applyTo(AFn.java:144)
    at clojure.core$apply.invoke(core.clj:632)
    at leiningen.repl$repl.doInvoke(repl.clj:322)
    at clojure.lang.RestFn.invoke(RestFn.java:425)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.core$apply.invoke(core.clj:632)
    at leiningen.core.main$partial_task$fn__6030.doInvoke(main.clj:261)
    at clojure.lang.RestFn.applyTo(RestFn.java:139)
    at clojure.lang.AFunction$1.doInvoke(AFunction.java:29)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:632)
    at leiningen.core.main$apply_task.invoke(main.clj:311)
    at leiningen.core.main$resolve_and_apply.invoke(main.clj:317)
    at leiningen.core.main$_main$fn__6096.invoke(main.clj:390)
    at leiningen.core.main$_main.doInvoke(main.clj:383)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.core$apply.invoke(core.clj:630)
    at clojure.main$main_opt.invoke(main.clj:316)
    at clojure.main$main.doInvoke(main.clj:421)
    at clojure.lang.RestFn.invoke(RestFn.java:457)
    at clojure.lang.Var.invoke(Var.java:394)
    at clojure.lang.AFn.applyToHelper(AFn.java:165)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)

"VM Thread" prio=10 tid=0x00007fdb0807b800 nid=0xde8 runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fdb0801e800 nid=0xde6 runnable 

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fdb08020800 nid=0xde7 runnable 

"VM Periodic Task Thread" prio=10 tid=0x00007fdb080c1000 nid=0xdef waiting on condition 

JNI global references: 192
IRC에서 나에게 귀중한 도움을 준 사람들은 그것이 걸린 곳이 아마도 com.hypirion.io.Pipe.join일 것이라고 건의했다.
또한 제안한 대로 lein run -m clojure.main을 시도하여 REPL을 성공적으로 시작했습니다.
$ lein run -m clojure.main
Clojure 1.7.0
user=> 
마지막으로 그는 nrepl이 아니라 일반 리플이 유효하다는 것은 플러그인 사용에 관한 운영체제의 안전성에 관한 것이라고 지적했다.
technomancy는emacsen이기 때문에 *Messages*을 연결하려고 시도할 때도 M-x cider-jack-in의 내용을 아래에 두었습니다.
Making nrepl-create-client-buffer-function local to *nrepl-server issue* while let-bound!
Making nrepl-use-this-as-repl-buffer local to *nrepl-server issue* while let-bound!
Starting nREPL server via lein repl :headless...
nREPL server started on 33012
nREPL: Establishing direct connection to localhost:33012 ...
error in process filter: if: nREPL: Direct connection failed
error in process filter: nREPL: Direct connection failed
모든 그룹에서 linux 사용자를 실수로 삭제한 것을 기억합니다. jack2의 범음을 설정하기 위해 오디오 그룹에 사용자를 추가하려고 했지만, 휠 그룹에 추가했습니다.Archlinux를 다시 설치하고 다시 시도하겠습니다.
만약 필요하다면, 나는 다른 정보를 제공하고, 그것을 복구하거나 필요한 정보를 제공할 수 있는 모든 방법을 시도할 수 있다.
이 대사들을 읽어 주셔서 감사합니다!

토론 #1

이것은 문제가 될 수 없습니다. 코드는 stdin/-out/-err를 하위 프로세스로 다시 정할 뿐입니다.만약 이것이 문제라면 com.hypirion.io.Pipe.join도 실패할 것이다.
이것은 아마도 인터넷과 관련된 문제일 것이다.만약archlinux를 다시 설치한 후에도 이 문제가 여전히 존재한다면, 나는 당신이 lein run -m clojure.main이 아니라 lein repl :connect nrepl://localhost:$port을 시도해서 이것이localhost와 관련된 이상한 문제가 아니라는 것을 검증하기를 바랍니다.lein repl :connect nrepl://127.0.0.1:$port 감사합니다.
$ lein repl :headless
nREPL server started on port 33751 on host 127.0.0.1 - nrepl://127.0.0.1:33751
$ lein repl :connect nrepl://localhost:33751
이것은 예외를 일으켰다.
Connecting to nREPL at nrepl://localhost:33751
ConnectException Connection refused
    java.net.PlainSocketImpl.socketConnect (PlainSocketImpl.java:-2)
    java.net.AbstractPlainSocketImpl.doConnect (AbstractPlainSocketImpl.java:339)
    java.net.AbstractPlainSocketImpl.connectToAddress (AbstractPlainSocketImpl.java:200)
    java.net.AbstractPlainSocketImpl.connect (AbstractPlainSocketImpl.java:182)
    java.net.SocksSocketImpl.connect (SocksSocketImpl.java:392)
    java.net.Socket.connect (Socket.java:579)
    java.net.Socket.connect (Socket.java:528)
    java.net.Socket.<init> (Socket.java:425)
    java.net.Socket.<init> (Socket.java:208)
    clojure.tools.nrepl/connect (nrepl.clj:184)
    clojure.core/apply (core.clj:630)
    clojure.tools.nrepl/add-socket-connect-method!/fn--10338 (nrepl.clj:224)
Bye for now!
127.0.0.1에서는 다음을 수행할 수 있습니다.
$ lein repl :connect nrepl://127.0.0.1:33751
Connecting to nREPL at nrepl://127.0.0.1:33751
REPL-y 0.3.7, nREPL 0.2.10
Clojure 1.7.0
OpenJDK 64-Bit Server VM 1.7.0_91-b01
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

user=> 

토론 #2

파일의 맨 위에

토론 #셋

행을 추가하여 이 문제를 해결할 수 있을 것 같습니다.이 줄이 이미 파일에 있다면, 맨 위로 옮기기만 하면 됩니다.127.0.0.1 localhost 항목을 삭제했을 때, 나도 같은 오류가 발생했는데, 그 중 IPv6 항목이 하나밖에 없었다./etc/hosts 내가 이 일을 할 때 이것은 #2000과 관련이 있는 것 같다.건의해 주셔서 감사합니다.
상단에는 127.0.0.1이 있고

토론 #4

이 추가되어 재부팅되어 이제 작동할 수 있습니다.
$ lein repl
nREPL server started on port 37017 on host 127.0.0.1 - nrepl://127.0.0.1:37017
REPL-y 0.3.7, nREPL 0.2.10
Clojure 1.7.0
OpenJDK 64-Bit Server VM 1.7.0_91-b01
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

user=> 
이마스 사과주 플러그인과도 함께 일한다.
이것이archlinux,java,clojure 또는leiningen과 관련이 있는지 모르겠습니다.어쩌면 너는 이 문제를 해결할 수 있을지도 모른다.
너는 첫 번째 시도에서 문제점을 발견했어!

토론 #5

#2000 솔루션도 이 문제를 무료로 해결할 수 있다고 생각합니다.나는 이것을 저것으로 합칠 것이다.

좋은 웹페이지 즐겨찾기