Puncte:0

jcmd funcționează în consolă, dar eșuează în script

drapel in

Mă enervez cu ceea ce ar trebui să fie o sarcină simplă: rulează un proces java, rămâne fără memorie și rulează un script.

SELinux este dezactivat.

în setenv.sh:

-XX:OnOutOfMemoryError='/opt/alfresco/scripts/dumpNrestart.sh > /tmp/dumpNrestart.log 2>&1'

%alfresco ALL= NOPASSWD: /opt/alfresco/java/bin/jcmd

#!/bin/sh -x
PIDDE=$(cat /opt/alfresco/tomcat/temp/catalina.pid)
/bin/rm -f /tmp/"$PIDDE".hprof
/bin/sudo /bin/id
/bin/sudo /opt/alfresco/java/bin/jcmd "$PIDDE" GC.heap_dump /tmp/"$PIDDE".hprof
/opt/alfresco/tomcat/bin/shutdown.sh -force

++ cat /opt/alfresco/tomcat/temp/catalina.pid
+ PIDDE=11451
+ /bin/rm -f /tmp/11451.hprof
+ /opt/alfresco/java/bin/jcmd 11451 GC.heap_dump /tmp/11451.hprof
11451:
com.sun.tools.attach.AttachNotSupportedException: Nu se poate deschide fișierul socket /proc/11451/root/tmp/.java_pid11451: procesul țintă 11451 nu răspunde în 10500ms sau HotSpot VM nu este încărcat
        la jdk.attach/sun.tools.attach.VirtualMachineImpl.<init>(VirtualMachineImpl.java:100)
        la jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:58)
        la jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207)
        la jdk.jcmd/sun.tools.jcmd.JCmd.executeCommandForPid(JCmd.java:114)
        la jdk.jcmd/sun.tools.jcmd.JCmd.main(JCmd.java:98)
+ /opt/alfresco/tomcat/bin/shutdown.sh -force

Bănuiesc că este o problemă de permisiune/privilegiu, dar cu sudo Credeam că am terminat... dar nu sunt așa cum vedem.

Ceva idei, ceva ce as putea incerca?

Vă mulțumim pentru timpul acordat citind asta!

Michael Hampton avatar
drapel cz
De ce crezi că există o problemă cu permisiunea? Mesajul de eroare spunea: „procesul țintă 11451 nu răspunde în 10500ms sau HotSpot VM nu este încărcat”.
drapel in
Salut Micheal, este ceva (ceva care îmi lipsește, poate nu permisiunile) despre cum este apelat jcmd: rularea scriptului din bash funcționează întotdeauna, dar dacă este apelată de la JVM, nu. Nu cred că este o problemă reală de timeout "10500ms" pentru că din consolă dump-ul nu durează nici măcar 5'' pentru a fi creat și este întotdeauna creat.
Puncte:1
drapel fr

Încercați să utilizați & . Acest lucru va face ca scriptul să ruleze în fundal. Și va avea acces.

-XX:OnOutOfMemoryError='sh /opt/alfresco/scripts/dumpNrestart.sh &'

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.