How to get process ID

Hi,
I am trying to run a process using runtime.exec() method. I want to know the process id of that process.
Is there any way to get the process id? Please help me on this.
Thank you.

Renuka_Patil wrote:
I am trying to run the cruisecontrol.bat file which is continuously building the files. now to stop building operation user ll have to close the command prompt (he can do it by pressing ctrl+c). but i want to close the command prompt on the click of button which is present on UI. So i want a process id to close the command prompt.
Process.destroy() destroys the process
Is there any other way of closing the command prompt? Please suggest.Is it at some point going to occur to you that since now at least three different people have suggested that you are doing a Bad Thing ™ , that you are in fact doing a Bad Thing ™ ?

Similar Messages

  • How to get Process Task Retry Count using API (OIM 10g)

    Hi ,
    I want to get all the process task which are failed after retried 5 times.
    For e.g Create user task in AD retried for 5 times but still it is in failed state. I want to get all such process task.
    I am stuck at point how to get process task retry count from process definition?
    Thanks

    You can reference the code in the "Task Timed Retry" scheduled task to get what you are looking for. Here is the decompiled code:
    >
    package com.thortech.xl.schedule.tasks;
    import Thor.API.Operations.tcScheduleTaskOperationsIntf;
    import com.thortech.util.logging.Logger;
    import com.thortech.xl.dataaccess.tcDataSetException;
    import com.thortech.xl.dataobj.tcDataSet;
    import com.thortech.xl.scheduler.tasks.SchedulerBaseTask;
    import com.thortech.xl.util.logging.LoggerMessages;
    import java.sql.Date;
    import java.util.Hashtable;
    public class tcTskTimedRetry extends SchedulerBaseTask
    private static Logger logger = Logger.getLogger("Xellerate.Scheduler.Task");
    Date isCurrentDate;
    public void init()
    logger.debug(LoggerMessages.getMessage("EnteredMethodDebug", "tcTskTimedRetry/init"));
    this.isCurrentDate = new Date(System.currentTimeMillis());
    logger.debug(LoggerMessages.getMessage("LeftMethodDebug", "tcTskTimedRetry/init"));
    public void execute()
    logger.debug(LoggerMessages.getMessage("EnteredMethodDebug", "tcTskTimedRetry/execute"));
    tcDataSet localtcDataSet1 = new tcDataSet();
    tcDataSet localtcDataSet2 = new tcDataSet();
    tcDataSet localtcDataSet3 = new tcDataSet();
    try
    if (isStopped())
    return;
    localtcDataSet2.setQuery(getDataBase(), "select osi_retry_on from osi where 1=2");
    localtcDataSet2.executeQuery();
    if (isStopped())
    return;
    localtcDataSet2.setDate("osi_retry_on", this.isCurrentDate);
    localtcDataSet1.setQuery(getDataBase(), "select osi.sch_key, osi.mil_key, osi.orc_key, osi.osi_rowver, sch.sch_rowver, osi.osi_retry_for, osi.osi_retry_on, osi.osi_retry_counter, sch.sch_note from osi osi,sch sch where osi.osi_retry_on <=" + localtcDataSet2.getSqlText("osi_retry_on") + " and osi.sch_key = sch.sch_key" + " and sch.sch_status='R'" + " and osi_retry_counter>0 order by osi.sch_key");
    localtcDataSet1.executeQuery();
    if (isStopped())
    return;
    int i = localtcDataSet1.getRowCount();
    logger.debug("tcTskTimedRetry:execute:Number of Process tasks retrieved is=" + i);
    tcScheduleTaskOperationsIntf localtcScheduleTaskOperationsIntf = (tcScheduleTaskOperationsIntf)getUtility("Thor.API.Operations.tcScheduleTaskOperationsIntf");
    tcDataSet localtcDataSet4 = new tcDataSet();
    localtcDataSet4.setQuery(getDataBase(), "select osi_retry_for, osi_retry_counter from osi where 1=2");
    localtcDataSet4.executeQuery();
    Hashtable localHashtable = new Hashtable();
    if (isStopped())
    return;
    for (int j = 0; j < i; j++)
    if (isStopped())
    return;
    localtcDataSet1.goToRow(j);
    localtcDataSet3.setQuery(getDataBase(), "select count(*) as counter from osi osi,sch sch where osi.sch_key = sch.sch_key and osi_retry_for=" + localtcDataSet1.getLong("sch_key"));
    localtcDataSet3.executeQuery();
    if (isStopped())
    return;
    if (localtcDataSet3.getInt("counter") > 0)
    continue;
    localHashtable.put("osi_retry_for", String.valueOf(localtcDataSet1.getLong("sch_key")));
    localHashtable.put("sch_note", localtcDataSet1.getString("sch_note"));
    long l = localtcDataSet1.getLong("osi_retry_counter");
    if (isStopped())
    return;
    try
    localtcScheduleTaskOperationsIntf.createScheduleItem(localtcDataSet1.getString("orc_key"), localtcDataSet1.getString("mil_key"), localHashtable, l - 1L);
    catch (Exception localException2)
    logger.error(LoggerMessages.getMessage("ErrorMethodDebug", "tcTskTimedRetry/execute", localException2.getMessage()), localException2);
    catch (tcDataSetException localtcDataSetException)
    logger.error(LoggerMessages.getMessage("ErrorMethodDebug", "tcTskTimedRetry/execute", localtcDataSetException.getMessage()), localtcDataSetException);
    logger.debug("PJ:tcTskTimedRetry:execute:DataSetexception has occured");
    catch (Exception localException1)
    logger.error(LoggerMessages.getMessage("ErrorMethodDebug", "tcTskTimedRetry/execute", localException1.getMessage()), localException1);
    logger.debug(LoggerMessages.getMessage("LeftMethodDebug", "tcTskTimedRetry/execute"));
    public boolean stop()
    logger.debug("tcTskTimedRetry:stop:Task being stopped");
    return true;
    >
    -Kevin

  • How to get PROCESS MODE in CRM 2007 WebClient

    Hi all,
    Currently, we're implementing CRM2007 WebClient -- Service Transaction.
    In the past(CRM4.0 Version), we used the function 'CRM_INTLAY_GET_PROCESS_MODE' in the BADI of SAVE Service Order to identify it's a new create order or changed order.
      CALL FUNCTION 'CRM_INTLAY_GET_PROCESS_MODE'
        IMPORTING
          ev_process_mode = l_dialog_mode. " A created, B changed
    Now, this function does not work in Web Client. So, I turned to another function 'CRM_ORDERADM_H_READ_OW' try to get the flag of process mode.
    CALL FUNCTION 'CRM_ORDERADM_H_READ_OW'
      EXPORTING
        iv_orderadm_h_guid               = lv_guid_ref
    IMPORTING
       ES_ORDERADM_H_WRK                = l_CRMT_ORDERADM_H_WRK
       EV_MODE                          = l_dialog_mode
    Yes, function 'CRM_ORDERADM_H_READ_OW' works in WebClient. But when creating new service order, the l_dialog_mode  = 'B' which is same to changing an exsiting order.
    So would anyone kindly help me, How to get the process mode properly in WebClient, especially in Service Order. I need to identify the order is new created or is changed.
    Your comments is really appreciated.
    Best Regards,
    Tony

    Use function module CRM_ORDERADM_H_ON_DATABASE_OW to check, if the order has already been save on the database. If not, you are in create mode.

  • How to get process instance id

    Hi,
    We are invoking a long lived process from a client using Java API (EJB end point).
    We are getting the JobId in return. Is there a way to get the process instance Id through API.
    Searched a lot in the documentation. Finally inclining to query the table directlyTB_PROCESS_INSTANCE  on LONG_LIVED_INVOCATION_ID.
    Appreciate a lot if any expert point us to an API way of doing the same

    We have tried to use the following approach to get process instance id right after invoking a process.
    - Define an OUT process variable to contain process id
    - A set value step right after invocation sets this out variable with process id variable value which is available by default
    - InvocationResponse.getOutputParameters() to read the output variable
    The problem is in the map returned by getOutputParameters() is not having our output variable , but just the JobId.
    Anyone tried this before? Are we missing sometiing?
    Any expert help is highly appreciated..

  • How to get/process the Data from XMLSocket?

    Hello All,
    I'm using Adobe Professional CS6, and Actionscript 3.0.
    To start with I have a C# program that basically just feeds data out from a Server in the form of XML data. I then have a Flash program that should receive the data and then I'll do some stuff with it. We had this working in Actionscript 1.0 but we need to upgrade the code to Actionscript 3.0, but instead of just trying to convert stuff over to the new  Actionscript version, I'm going to re-write the program.
    So far I've basically just defined some EventListeners most of which I found examples of online for using XMLSockets. As of now the Flash program will connect an XMLSocket to the Server that is feeding out the data, and the server feeding the data resends new data every 5-10 seconds or so.
    So when a grouping of XML Data comes in on the port I defined, the following Function gets executed for handling the incoming data. For my EventListener's Function for "socket.addEventListener(DataEvent.DATA, dataHandler);"  ("socket" is defined as --> var socket = new XMLSocket(); ). So when the new data comes in it executes the above function.
    The trouble I'm having is declaring a new variable of type "XML" and then using that variable to pull out individual "nodes/children" from the incoming XML Data. I found an example online that was very close to what I want to do except instead of using an XMLSocket to get data constantly streaming in they use the "URLLoader" function to get the XML data. I know I'm receiving the XML data onto the server because if I set the (e: DataEvent) variable defined in the function "head" to a string and then run a trace on that I can see ALL of the XML data in the "Output Window".
    But I can't seem to be able to set (e: DataEvent) to a XML variable so I can access individual elements of the XML data. The example I found (which uses the URLLoader instead) uses this line (myXML = new XML(e.target.data);)  to set the XML Variable, which won't work for mine, and if I try to do the same thing in my code it simply prints this for as many lines as there is XML data --> "[object XMLSocket]"
    MY CODE:
    *I left out the other Functions that are in my code for the EventListeners you'll see defined below, except for the one in question:
                             ---> "function dataHandler(e: DataEvent):void"
    import flash.events.IOErrorEvent;
    import flash.events.ProgressEvent;
    import flash.events.SecurityErrorEvent;
    import flash.events.DataEvent;
    var socket = new XMLSocket();
    socket.addEventListener(Event.CONNECT, connectHandler);
    socket.addEventListener(Event.CLOSE, closeHandler);
    socket.addEventListener(DataEvent.DATA, dataHandler);
    socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
    socket.addEventListener(ProgressEvent.PROGRESS, progressHandler);
    socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
    var success = socket.connect('server.domain.name.local',3004);
    The code in this function was used from an example I found online as described above in the post: 
              LINK --> http://www.republicofcode.com/tutorials/flash/as3xml/
    // The Commented out code (*in blue) will show ALL the xml data inside the "Output Window":
    function dataHandler(e: DataEvent):void {
              // var myStr:String = e.data;
              var xml:XML;
              xml = new XML(e.target.data);  //<--- THIS DOESN"T WORK (I DONT THINK 'target' IS CORRECT HERE)??
              if (socket.connected)
                        // trace(myStr)
                        trace(xml);
    The Output from the line "trace(xml)" will show this data below in the "Output Window" (*FYI There should be 6 lines of XML Data on each 'update'):
    [object XMLSocket]
    [object XMLSocket]
    [object XMLSocket]
    [object XMLSocket]
    [object XMLSocket]
    [object XMLSocket]
    Could someone show or point me in the right direction on this. I want to be able to access specific parts of the incoming XML Data.
    Here's some sample XML Data:
    <MESSAGE VAR="screen2Display" TEXT="CSQ_1" />
    <MESSAGE VAR="F1_agentsReady" TEXT="111" />
    <MESSAGE VAR="F1_unavailableAgents" TEXT="222" />
    <MESSAGE VAR="F1_talkingAgents" TEXT="333" />
    <MESSAGE VAR="F1_callsHandled" TEXT="444" />
    <MESSAGE VAR="F1_ABDRate" TEXT="555" />
    Any thoughts or suggestions would be greatly appreciated..!
    FYI:
    I'm VERY new to Actionscript/Flash Developing (*about a week now), so go easy on me haha...
    Thanks in Advance,
    Matt

    Hey Guys, thanks ALOT for the replies!!
    Andrei1 and Sinious,
    The code I show above is actually just what I found in an example online, and its what i was trying to show you what "they" used
    in the URLLoader example. I wasn't trying to use URLLoader, but it was the closest example I found online to  what I was trying to
    do in terms of processing the XML Data, and not how I read it in. So XMLSocket IS definetly what I'm trying to use because the Server
    I'm receiving the XML Data from "pushes" it out every 10 seconds or so. So yea I definatly want to use XMLSocket and not URLLoader...
    Sorry for the confusion...
    The example you show:
         var xml:XML = new XML(e.data)
    Is actually what I had in my original code but I couldn't get it to show anything in the "Output Window" using the trace() method on
    it, so I assumed I wasn't doing it correctly...
    What my original code was in the "dataHandler()" Function was this:
    function dataHandler(e: DataEvent): void
        var xml: XML = XML(e.data);
        if (socket.connected)
            trace(xml);
            msgArea.htmlText += "*socket.connected = TRUE\n"
        } else {
            msgArea.htmlText += "*socket.connected = FALSE\n"
    OUTPUT:
    And what I get when I run a Debug on it is, in the "msgArea", which is just a simple Text Box w/ Dynamic Text on the main frame it prints:
        "socket.connected = TRUE
         socket.connected = TRUE
         socket.connected = TRUE
         socket.connected = TRUE
         socket.connected = TRUE
         socket.connected = TRUE"
    It prints that message 6 times in the msgArea for each XML Message that comes in (*which I think 6 times because there
    are 6 "sections/nodes" in the XML Data). But then NOTHING prints in the "Output Window" for the "trace(xml)" command.
    Not sure why nothing is showing in the "Output Window", maybe the XML is not complete? But I could see data in the "Output
    Window" when I set "e.data" to a string variable, so I know the Data is reaching the program. Since I could see the XML Data in
    a string variable, does that mean I can rule out that the XML Data coming in is considered a "complete" XML Document?
    Because I wasn't sure if to be considered a complete XML Document it would need to have this included in the message..?
                        "<?xml version="1.0"?>"
    For the tests I'm running, one single XML message which is being pushed out from the server looks like this:
    <MESSAGE VAR="screen2Display" TEXT="Call_Queue_1" />
    <MESSAGE VAR="F1_agentsReady" TEXT="111" />
    <MESSAGE VAR="F1_unavailableAgents" TEXT="222" />
    <MESSAGE VAR="F1_talkingAgents" TEXT="333" />
    <MESSAGE VAR="F1_callsHandled" TEXT="444" />
    <MESSAGE VAR="F1_ABDRate" TEXT="555" />
    Would I need to include that "Header" in the XML message above?
                   i.e. "<?xml version="1.0"?>"
    Or do I need to be more specific in the trace command instead of just using "trace(xml)"?
    Also yes, I already have a Flash Policy file setup and working correctly.
    Anyway, thanks again guys for the replies, very much appreciated!!
    Thanks Again,
    Matt

  • How to get process start time from BI BPM Data Source

    Hi,
    I would like to get the process start time using the VC data source BI_BPM_MY_PROCESSES_DS.
    The return parameter BI_START_TIME_VALUE returns numbers like 1.271.858.563.350,00. This seems to be ms beginning from 1970.
    I tried the following to get the current date/time but it didn't work:
    =DTADD(DATETIME(1970,01,01,00,00),@BI_START_TIME_VALUE,'Z')
    Any idea how to do this?
    Thanks,
    Kevin

    Hi Experts,
    Do you have ideas for this SQL query ?
    Regards.

  • SSAS 2008 - How to get processing times per dimension / measure group?

    Hi experts!
    SSAS 2008. I am doing analysis and I'm trying to get information (from dmv or log) about processing times per dimension / measure group. Any ideas how to do that?
    Thanks,

    also in DMV there's no column recording the processing time, so we suggest you using SSAS AMO to programmatically get the state and last processed date time. Please see:
    Analysis Management Objects (AMO)
    Hi John,
    Thanks for you info, As
    Simon Suggested there is no DMV columns available.
    You can use below link for more information.
    Programming Administrative Tasks with AMO
    Cube
    partition attributes for last processed (timestamp and status)
    Thanks
    Suhas
    Mark as Answer if this resolves your problem or "Vote as Helpful" if you find it helpful.
    My Blog
    Follow @SuhasKudekar

  • How to get processing time in RMI program

    Hi, all
    I am a newbie in Java RMI application. I am currently developing a small calculation application using Java RMI.
    My question is how can i get the processing time from client input until the server give feedback to the client?
    Thanks,
    Sohming

    sohming wrote:
    I have another question, is the default RMI using the reliable/unreliable/switchable connection?No. It is not a messaging protocol and uses direct synchronous connectivity. As such, if you get a reply it was successfully sent.
    Can i test processing time using different type of protocol?You can use the same approach for testing connectivity for a range of protocols. However I suggest you run the tests many times if this is realistic for your use case.
    I have a performance comparison of many messaging and RMI solutions here [http://www.freshvanilla.org:8080/display/essence/Essence+Remote+Method+Invocation] under "What are similar libraries?"
    I tested my own implementation for latency and throughput and you can get the results and download the source for those tests from this page.

  • How to get process id in java

    I am executing exe file from my java application by using Runtime.exec
    How can i find out from my application whether the exe file is running or not?

    What would you do with the pid? the actual pid is OS dependent in form and how to react. You could do what I've done in the past and that is to do the following.
    I have a java task that spawns new instances of 'things'. As each thing is 'exec'ed, I place its Process object into a 'running queue' and then periodically check its exitValue() to determine if it is still running or not.
    if you don't care about OS dependency and happen to be on a unix system, then when you exec the process, add a unique string as a command line argument that you know won't be used. something like this:
    mypgm -a=blah -b=blah2 myUniqueString
    Then in your code that retrieves the process id, simply do something like this:
    ps -efwww | grep myUniqueString | awk ....
    awk it into something usable or perhaps just grab the raw and parse it in java to extract the process id.
    I think the danger would reside in the idea that if you were to grab the processid and then do a 'kill -9 xx' that java might not clean up correctly. What would happen if a db transaction was taking place right as the -9 signal was received? The results of course would be OS dependent.
    Why do you need the process id? thats the real question....

  • How to get process instance activity information

    We have the following need:
    The process instance will be created either manually or by integration from another system. It is not possible to have two instances running for the same process, so we want to check if there is already one instance running for a given process. The business information that identifies the process uniquely are attributes of the process data object.
    We need to find out how to:
    1) check if there is already existing instance for the process giving the business information that identifies it
    2) check if the existing instance is running or is ended/terminated
    We want to know if there is any existing API we may use to achieve the needs above, what are them and where we can find more information of their use.
    We have tried searching in the API documentation what methods could be of use but we were not able to identify by the existing documentation any one that could attend our needs.
    We also didn't find any topic in this forum about it.
    If possible please give us some examples of use.
    Version: Oracle BPM 11g

    Hi,
    In the SOA Suite 11g you can use the Java API together with Composite Sensor to achieve these behavior:
    1. First, create a composite sensor in the operation that create the process composite instance, initializing the sensor with the business information that identifies the process uniquely. This composite sensor can be used to search for the composite instance either on EM or via API. For more information about how to create Composite Sensor, see http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10224/sca_compsensors.htm#insertedID0
    2. Using the Java API (http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e10659/toc.htm), search for the composite instance by the Composite Sensor, as explained at: http://blogs.oracle.com/soabpm/2009/08/soa_suite_11g_-apipart_3_-_f.html. With a reference to the composite instance, you can check its internal components states.
    The following libs must be imported in your java project:
    - <middleware_home>/oracle_common/modules/oracle.fabriccommon_11.1.1/fabric-common.jar
    - <middleware_home>/oracle_common/soa/modules/oracle.soa.mgmt_11.1.1/soa-infra-mgmt.jar
    - <middleware_home>/wlserver_10.3/server/lib/weblogic.jar
    - <middleware_home>/oss_11gr1/soa/modules/oracle.soa.fabric_11.1.1/oracle-soa-client-api.jar
    - <middleware_home>/oracle_common/webservices/wsclient_extended.jar
    I hope this can help.
    Regards,
    Rafael

  • How to get process id of a process?

    I am running an external exe using getRuntime().
    String cmd[] = new String[]{"cmd","/C","start","EXE"};
    Process exe = Runtime.getRuntime().exe(cmd);---------------------------
    And am trying to get the process id of the exe running.
    Is there any way to get the process id of exe or cmd.exe which loaded that exe?

    Yes i am using exec method provided by Runtime class.
    Actually I am starting an exe from Java swing on click of "Start/Stop" button.
    If I again click on the same button, I should be able to stop that exe.
    Since cmd.exe is launching the exe, I dont have any control over that running exe (process).
    Is there anything to track the PID using Core Java ??

  • How to get processing instruction tag ?

    pls,can anyone tell me,how to processing instruction tag indesign sdk?
    Thanks,
    screen410099

    with t
    as
    select 'EXECUTION APPROVAL - <b><VALIDATION TYPE></b> execution <b><VAL. EXE. NO.></b> f or <b><ENTITY NAME> / <ENTITY NO.></b> has been Sent to you for Approval' str
      from dual
    select regexp_substr(str,'<[^>]*>',1,level)
      from t
    where regexp_substr(str,'<[^>]*>',1,level) is not null
       and regexp_substr(str,'<[^>]*>',1,level) not in ('<b>','</b>')
    connect by level <=length(str)

  • How to get the values and attributes of Longlived processes by using ProcessID.

    Hi Experts,
    For  every process we creates, LC ES2 creates processID.
    we know that if you creates  a long lived process, all  the  values which are in proces will be stored some where  in DB.
    Here my requirement is by using  processID I need to get all/some values/variables stored in database.
    I am not able to get values using processID. Here I don't have clue on  how to get the values.
    Please tell me  how to get the same by using  Process Management. Link/guide would be helpful
    Thanks
    Praveen.

    Searchable means you can put a filter criteria on it (e.g. where amount > 50000)
    Visible means you can add have this column returned as an output (and therefore you can add it as column in listview and see it in Task Details).
    These two attributes were provided so that queries could be done against the process variables, but the exact contents of the variables are not allowed to be seen.

  • How to get the data from mysql database which is being accessed by a PHP application and process the data locally in adobe air application and finally commit the changes back in to mysql database through the PHP application.

    How to get the data from mysql database which is being accessed by a PHP application and process the data locally in adobe air application and finally commit the changes back in to mysql database through the PHP application.

    If the data is on a remote server (for example, PHP running on a web server, talking to a MySQL server) then you do this in an AIR application the same way you would do it with any Flex application (or ajax application, if you're building your AIR app in HTML/JS).
    That's a broad answer, but in fact there are lots of ways to communicate between Flex and PHP. The most common and best in most cases is to use AMFPHP (http://amfphp.org/) or the new ZEND AMF support in the Zend Framework.
    This page is a good starting point for learning about Flex and PHP communication:
    http://www.adobe.com/devnet/flex/flex_php.html
    Also, in Flash Builder 4 they've added a lot of remote-data-connection functionality, including a lot that's designed for PHP. Take a look at the Flash Builder 4 public beta for more on that: http://labs.adobe.com/technologies/flashbuilder4/

  • Need to know how to get my apple account to sync up with a new email on my phone and delete the old one in a step by step process??

    Need to know how to get my apple account to sync up with a new email on my phone and delete the old one in a step by step process??

    After you change the account settings as I described below hold your finger on any app until they all wriggle, then tap the "-" on each purchased with her Apple ID. Press the HOME button when done. Then go to the App Store and buy or download the apps you want.

Maybe you are looking for

  • How to use the validation.xml in struts validation?

    Can any one please help me, how to use the validation.xml in struts validation? possible please give me simple example. Edited by: SathishkumarAyyavoo on Jan 31, 2009 12:03 PM

  • Formatting problem when downloading classical report output to excel sheet.

    Dear Experts, My classical report o/p looks like: SI    Name   ID 1      xyz     11 2      abc     22 3      eet      33 4      jnc      44 When I download the same to a excel sheet from List->Save->file->Spreadsheet and save it. The formatting looks

  • TS3276 Help in setting Apple Mail to receive and send mail via Yahoo mail service

    I would appreciate help in setting up Apple Mail to receive and send e-mails via Yahoo.   Thank you

  • PR/PO Unrelease

    Dear All, There is a requirement from our users that - In Multi level release - They need that as soon as PR/PO is released by the first user - It should get unblocked so that there is no change possible. Now there is issue that in case they want to

  • HUD disappeared (Ap 2)

    Any ideas why the HUD doesn't appear even when the menu implies it is visible (i.e. it shows "Hide inspector HUD")? The other HUDs work fine. Thanks