How to make Launchd/LaunchAgents wait for volume mount?

I've been trying off and on for months to resolve a problem I have starting up named on my OS X 10.5 Mac Mini, which acts as a home server. Actually, I've been trying since 10.4 came out.
All my configuration files are located on a volume located on an external pair of RAIDed drives. At system startup the volume mounts automatically, and I have soft links pointed to the remote directories, in this case /usr/local/etc/. The problem is that system startup doesn't wait for this volume to come online before starting to run items in LaunchAgents. Therefore, using the StartAtLoad option, I'll see messages in the system log from bind saying that it tried to start, but the config file /usr/local/etc/named/named.conf wasn't available, so it died.
I've experimented with WatchPaths - that doesn't seem to work reliably because by the time it gets going, the path is available; since it doesn't actually check availability, but only status change, it doesn't work. (If I log in and touch the file afterwards, named starts right up.)
I can figure out some hack to run a script and check the status regularly and launch/re-launch, but I'd rather figure out how to do this the "right" way with launchd. Current (still broken) script is below. Thanks for suggestions!
KeS
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.bind</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/named</string>
<string>-f</string>
<string>-c</string>
<string>/usr/local/etc/named/named.conf</string>
</array>
<key>WatchPaths</key>
<array>
<string>/usr/local/etc/named/named.conf</string>
</array>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>domain</string>
</dict>
</dict>
</dict>
</plist>

Umm, ok. Are you suggesting that there's more likelihood of getting an answer there, or that it's in the wrong place here? I hate to bother developers with a user question. I'm not asking for new features.
Tx.
KeS

Similar Messages

  • How to make a component wait for an event?

    Hey there Adobe community, I recently started using Flash Builder and I have a problem. I have a windowed application in Flash Builder with some script code and then a base64 image.
    <?xml version="1.0" encoding="utf-8"?>
    <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                           xmlns:s="library://ns.adobe.com/flex/spark"
                           xmlns:mx="library://ns.adobe.com/flex/mx"
                           xmlns:flexlib="http://code.google.com/p/flexlib/" preinitialize="loadImage()">
        <fx:Script><![CDATA[
            import flash.display.BitmapData;
        import flash.utils.ByteArray;
        import mx.controls.Image;
        import mx.core.UIComponent;
        import mx.graphics.codec.JPEGEncoder;
        import mx.utils.Base64Encoder;
        private var image:Bitmap;
        private var base64image:String="";
        private function loadImage():void
            var loader:Loader = new Loader;
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
            loader.load(new URLRequest("mypic.jpg"));
            trace("started loading");
        private function getimg():String
            trace("flexlib accessing image ", base64image);
            return base64image;
        private function imageLoaded(event:Event):void
            image = new Bitmap(event.target.content.bitmapData);
            base64image = getBase64FromComponent(image);
            trace("image converted");
        ]]></fx:Script>
        <flexlib:Base64Image value="{getimg()}"/>
    </s:WindowedApplication>
    The flexlib tag should render an image from a string. I want to load an image in the actionscript code, convert it to a string and then draw it. However, as soon as the application starts it attempts to render the string, which is still empty.
    The trace is like this, for some reason the getimg() is called twice:
    flexlib accessing image
    started loading
    flexlib accessing image
    image converted
    As you can see, the image isn't converted until after flexlib tries to draw it. The solution would be to make the flexlib component wait for the imageLoaded event, or make the specific tag re-initialize itself. How can I do this?

    Great, thanks. Now I can narrow my problem scope down.
    This is now the isolated culprit of my program:
    "Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space"
    I already ran garbage collector just before 2nd method but the same error still occures.
    But if I were to comment out method 2, run the program (to generate the file from method 1), then do the opposite and run again, it will work. ie. I have to run the main program twice.
    I don't understand this. The free memory after running GC after method 1 has reset the free mem to approx 1654kb so why can't method 2 run properly?
    Even if I just run method 2 alone, the free mem it starts with is 1639kb.
    Here are the memory values during the execution.
    //all memory values in kb
    Max memory = 65088
    Allocated memory = 1984
    total free memory: 64743
    free memory before method 1: 1639
    // Run method 1
    free memory after method 1: 875
    free memory after running garbage collector: 1654
    //Run method 2
    free memory after the main computation in method 2: 4807
    free memory AFTER running garbage collector: 6733
    Any solutions?

  • How to make Flash to wait for user input

    Hi,
    I found this PHP script, then I made some changes to make it
    FEED the Flash user interface with online user input.
    The main concept of this script is WAITING for user input, so
    it shows the messages and then go to next line and so on.
    The user input go to directly to TEXT file which writes in
    lines, each line has a unique id = (mag_id).
    There "get_msge.php" which works as the middleware between
    FLASH and messages text file.
    The problem, its doesn’t show any data while there are
    data in the text file.
    Help here please, best regards.
    This is the link of
    problem illustartion
    AS is:
    // create an object to store the variables
    varReceiver = new LoadVars();
    // load the variables from the text file
    varReceiver.load("get_msg.php?file_id=1&msg_id=1",
    "POST");
    // trigger something - when the variables finish loading
    varReceiver.onLoad = function(){
    //the variables have finished loading
    if (this.msg_id == 1) {
    _root.xmsg1_swf.text = this.msg;
    _root.xmsg1_ch.text = this.msg;
    gotoAndPlay("line2");
    } else {WAIT }
    PHP is:
    <?php
    //get these values from the FLASH
    $file_id_swf = $_POST ['file_id'];
    $file_name = "messages/messages".$file_id_swf.".txt";
    $msg_id_swf = $_POST ['msg_id'];
    // [0] ."||".[1] ."||".[2] ."||". [3] ."||".[4]."||". [5].
    //$msg_id."||".date."||".time."||".$from."||".$to."||".$msg.
    $fp = fopen ($file_name, 'rb');
    while (!feof ($fp))
    $msg_txt = fgets ($fp, 1024);
    $line = explode ("||", $msg_txt);
    $msg_id = $line[0];
    $from = $line[3];
    $to = $line[4];
    $msg = utf8_encode ($line[5]);
    if ($msg_id == $msg_id_swf)
    echo
    "msg_id=".$msg_id."&from=".$from."&to=".$to."&msg=".$msg;
    }//while
    fclose ($fp);
    ?>

    Well, given the things that you've written, I don't think it
    could. There technically isn't any code in flash that lets it
    "wait." In order to "wait," you must run the script over again
    until some condition is met.
    However, your code does look accurate. Why do you need to
    wait? The onLoad function will be invoked WHEN something is loaded.
    So, I don't see the reason for the "waiting."
    In addition to that, I would like to say that using text
    files isn't that great with flash. I have done this before and
    noticed several problems with using text files. The biggest problem
    is that the text files are cached after being loaded. Every time
    you re-load it again, you will get what you got the first time
    until you reset your cache (ie. close your browser). I suggest
    using MySQL. (Just my thought.)

  • How to make a good referencing for my web site

    hi. i start with muse and would like to know how to make a good referencing for my web site; thanks for your answers...

    Google and search the forum for: SEO or Search Engine Optimisation

  • How to make saved IR available for all users

    Hi,
    I've created IR and saved it to several tabs based on search conditions.
    But they're only visible for developers.
    How to make these tabs available for all end-users ?
    Does version 4.0 support this option ?
    Thank you!

    Hi
    At present this feature is not included, although I believe it may be in 4.0. Many people have provided workarounds for this. None of which I have tried. I cannot find the original thread but here is a solution from a chap called Ruud
    >
    One way to share your saved reports with others is to 'Publish' your report settings to a few intermediate tables in your application and have other users 'Import' your settings from there. The reason for using intermediate tables is so that not all your saved reports need to be 'visible' to other users (only those that you've chosen to publish).
    Basically you have available the following views and package calls that any APEX user can access:-
    - flows_030100.apex_application_pages (all application pages)
    - flows_030100.apex_application_page_ir_rpt (all saved reports - inclusing defaults and all user saved reports)
    - flows_030100.apex_application_page_ir_cond (the associated conditions/filters for above saved reports)
    - wwv_flow_api.create_worksheet_rpt (package procedure that creates a new saved report)
    - wwv_flow_api.create_worksheet_condition (package procedure that creates a condition/filter for above saved report)
    The way I've done it is that I've created 2 tables in my application schema that are straightforward clones of the 2 above views.
    CREATE TABLE user_report_settings AS SELECT * FROM flows_030100.apex_application_page_ir_rpt;
    CREATE TABLE user_report_conditions AS SELECT * FROM flows_030100.apex_application_page_ir_cond;
    ( NB. I deleted any contents that may have come across to make sure we start with a clean slate. )
    These two tables will act as my 'repository'.
    To simplify matters I've also created 2 views that look at the same APEX views.
    CREATE OR REPLACE VIEW v_report_settings AS
    SELECT r.*
    p.page_name
    FROM flows_030100.apex_application_page_ir_rpt r,
    flows_030100.apex_application_pages p
    WHERE UPPER ( r.application_name ) = <Your App Name>
    AND r.application_user 'APXWS_DEFAULT'
    AND r.session_id IS NULL
    AND p.application_id = r.application_id
    AND p.page_id = r.page_id;
    CREATE OR REPLACE VIEW v_report_conditions AS
    SELECT r.*
    p.page_name
    FROM flows_030100.apex_application_page_ir_cond r,
    flows_030100.apex_application_pages p
    WHERE UPPER ( r.application_name ) = <Your App Name>
    AND r.application_user 'APXWS_DEFAULT'
    AND p.application_id = r.application_id
    AND p.page_id = r.page_id;
    I then built 2 screens:-
    1) Publish Report Settings
    This shows 2 report regions:-
    - Region 1 - Shows a list of all your saved reports from V_REPORT_SETTINGS (filtered to only show yours)
    SELECT apex_item.checkbox ( 1, report_id ) " ",
    page_name,
    report_name
    FROM v_report_settings
    WHERE application_user = :APP_USER
    AND ( page_id = :P27_REPORT OR :P27_REPORT = 0 )
    ORDER BY page_name,
    report_name
    Each row has a checkbox to select the required settings to publish.
    The region has a button called PUBLISH (with associated process) that when pressed will copy the settings from
    V_REPORT_SETTINGS (and V_REPORT_CONDITIONS) into USER_REPORT_SETTINGS (and USER_REPORT_CONDITIONS).
    - Region 2 - Shows a list of already published reports in table USER_REPORT_SETTINGS (again filtered for your user)
    SELECT apex_item.checkbox ( 10, s.report_id ) " ",
    m.label,
    s.report_name
    FROM user_report_settings s,
    menu m
    WHERE m.page_no = s.page_id
    AND s.application_user = :APP_USER
    AND ( s.page_id = :P27_REPORT OR :P27_REPORT = 0 )
    ORDER BY m.label,
    s.report_name
    Each row has a checkbox to select a setting that you would like to delete from the repository.
    The region has a button called DELETE (with associated process) that when pressed will remove the selected
    rows from USER_REPORT_SETTINGS (and USER_REPORT_CONDITIONS).
    NB: P27_REPORT is a "Select List With Submit" to filter the required report page first.
    Table MENU is my application menu table where I store my menu/pages info.
    2) Import Report Settings
    This again shows 2 report regions:-
    - Region 1 - Shows a list of all published reports in table USER_REPORT_SETTINGS (filtered to show only other users saved reports)
    SELECT apex_item.checkbox ( 1, s.report_id ) " ",
    m.label,
    s.report_name,
    s.application_user
    FROM user_report_settings s,
    menu m
    WHERE m.page_no = s.page_id
    AND s.application_user :APP_USER
    AND ( s.page_id = :P28_REPORT OR :P28_REPORT = 0 )
    ORDER BY m.label,
    s.report_name,
    s.application_user
    Each row has a checkbox to select the setting(s) that you would like to import from the repository.
    The region has one button called IMPORT that when pressed will import the selected settings.
    It does this by using the 2 above mentioned package procedure to create a new saved report for you
    with the information form the repository. Be careful to match the right column with the right procedure
    parameter and to 'reverse' any DECODEs that the view has.
    - Region 2 - Shows a list of all your saved reports from V_REPORT_SETTINGS (filtered to only show yours)
    SELECT page_name,
    report_name
    FROM v_report_settings
    WHERE application_user = :APP_USER
    AND ( page_id = :P28_REPORT OR :P28_REPORT = 0 )
    ORDER BY page_name,
    report_name
    This is only needed to give you some feedback as to whether the import succeeded.
    A few proviso's:-
    a) I'm sure there's a better way to do all this but this works for me :-)
    b) This does not work for Computations! I have not found an API call to create computations.
    They will simply not come across into the repository.
    c) If you import the same settings twice I've made it so that the name is suffixed with (2), (3) etc.
    I did not find a way to update existing report settings. You can only create new ones.
    d) Make sure you refer to your saved reports by name, not ID, when matching APEX stored reports and the
    reports in your repository as the ID numbers may change if you re-import an application or if you
    auto-generate your screens/reports (as I do).
    Ruud
    >
    To me this is a bit too much of a hack and I personally wouldn't implement it - it's just an example to show it can be done.
    Also if you look here in the help in APEX Home > Adding Application Components > Creating Reports > Editing Interactive Reports
    ...and go to the last paragraph, you can embed predicates in the URL.
    Cheers
    Ben
    http://www.munkyben.wordpress.com
    Don't forget to mark replies helpful or correct ;)
    Edited by: Munky on Jul 30, 2009 8:03 AM

  • How to make warehouse field inactive for all users in all documents autom.

    Hi All,
    Can anyone pls tell me "**how to make warehouse field inactive for all users in all documents without having to do it through form setting** "for each and every user. It should be visible but inactive
    Thanks & Regards,
    Mukesh Agrawal

    Hi,
    As a work around create a warehouse SelectWH and map the mandatory acoounts as a On hold account(in chart of accounts).So there will not be any posting on this account.
    And set this warehouse as default warehouse for all users.
    So without selecting the appropriate warehouse the user can not add the document.
    I think this might resolve you issue.

  • How to make jar files availabe for deployed EJBs

    Hi,
    I'm interested on how to make jar files availabe for deployed EJBs.
    My EJB is packed in an ear. It uses a util jar. I now just add the jar to the
    classpath, but I think that shouldn't be the way. Is there somthing in the admin
    console to make jars available or do I have to insert it in the ear file? And
    if so, where do I hve to place it?
    Thanks
    Claudia

    Put the util.jar in the ear with your ejb jars - at the same level (i.e. in
    the root) - but do not include them in the manifest.xml.
    Also each ejb jar that refers to util.jar must have util.jar on its internal
    classpath in the manifest.
    "Claudia" <[email protected]> wrote in message
    news:3d537db5$[email protected]..
    >
    Hi,
    I'm interested on how to make jar files availabe for deployed EJBs.
    My EJB is packed in an ear. It uses a util jar. I now just add the jar tothe
    classpath, but I think that shouldn't be the way. Is there somthing in theadmin
    console to make jars available or do I have to insert it in the ear file?And
    if so, where do I hve to place it?
    Thanks
    Claudia

  • How to make a group contacts for iphone 4s, How to make a group contacts for iphone 4s

    How to make a group contacts for iphone 4s

    Or there are apps
    https://www.google.co.uk/url?sa=t&source=web&cd=3&ved=0CEEQFjAC&url=https%3A%2F% 2Fitunes.apple.com%2Fgb%2Fapp%2Ftext-2-group-fast-sms-imessage%2Fid519077434%3Fm t%3D8&ei=WCkfUc6vE8THtQavlYCoBw&usg=AFQjCNHnoWUqJ9AMYWCadVceOkq-6Ed4Vg

  • When trying to do a system backup to my remote LaCie hard drive, what does it mean when I get a message that says "waiting for volume LaCie disk"?  While this message apears no back-up occurs.  Is there a setting I need to change?

    When trying to do a system backup to my remote LaCie hard drive, what does it mean when I get a message that says "waiting for volume LaCie disk"?  While this message apears no back-up occurs.  Is there a setting I need to change?

    You can't do a backup of icloud to an external drive.  In fact, does your post have anything to do with icloud (you're in the icloud forum)?
    What kind of "system backup" are you doing?  Are you using Time Machine?

  • How to make the logs captured for Z fields in ME21N/ ME22N

    Hi
    I have  devloped new tab(Screen) and added Z field in the PO header (ME21N) as per my requirement. But whenever I do changes to the perticular Z field, logs are not captured (ME21N->ENVIRONMENT-->HEADERLOG). How to make the logs captured for Z fields like standard fields. Is there any way?
    Regards
    Raj.

    HI Ranjitha
    For the data element of Z fields go to further caracteristics of tab and make change document checkbox ticked.

  • How to make a portlet unvisible for another(not Owners) Users?

    Hi all,
    I (Site-Owner) have create a little Portal-Site with any portlets.
    I want to make one or two portlets(Admin-Area) unvisible for other users. But when I create a portlet as Site-Owner, then all another users can they see.
    How to make a portlet unvisible for another users?
    Regards
    Leonid Pavlov

    You can hide and show portlets of Web providers (OmniPortlet, Web Clipping, and Java portlets) on portal pages dynamically. This functionality is controlled by security managers. The PDK provides a number of security managers. For example:
    o Group security manager: The group security manager makes the portlet appear to users who are members of a specified group, while hides the portlet for those who are not members.
    o Authentication level security manager: You can use the authentication level security manager to control access to the portlets based on the user’s authentication level. For example you may hide the portlet from public users, but display it to authenticated users.
    In addition to the security managers provided by the PDK, you can build your own security managers.
    Although OmniPortlet and Web Clipping do not expose security managers through the user interface, you can apply them by editing their XML provider definition file.
    For PL/SQL portlets you can use the is_runnable method to control whether the portlet is hidden or shown.
    Peter

  • How to make a loop run for specific period of time ?

    hello !
    i'm new to labview and could'nt found how to make a loop run for 2 sec for example, and then to exit.
    Solved!
    Go to Solution.

    Hi Hookso,
    You can do it using the different loops like While loop and For Loop. Roderic has already stated how to do it using a for loop. I have illustrated in the attached vi how to do it using a while loop and Elapsed Time function. Take a look.
    Regards,
    Nitzz
    (Give kudos to good Answers and Mark it as a Solution if your problem is Solved) 
    Attachments:
    Untitled 2.vi ‏36 KB

  • How to make custem sized book for example 12inch x 8 inc, 18 inch x12 inch

    how to make custem sized book for example 12inch x 8 inch, 18 inch x12 inch

    I'm afraid there is no way to do this currently available.

  • I have snow leopard, 10.6.8 on my mac pro.  would it make sense to wait for mountain lion in the summer vice upgrading to Lion then mountaion lion?

    i have snow leopard, 10.6.8 on my mac pro.  would it make sense to wait for mountain lion in the summer vice upgrading to Lion then mountaion lion?

    Nobody can tell you that.  We don't yet know what the pricing will be or what kind of compatibility issues may arise.  If you don't need anything in Lion right now, you can certainly wait, and if you do find the features of Lion compelling, there's no reason to wait for 6 months.  Buy what you need when you need it, and don't worry so much about what's ahead...  there's always something new coming soon!

  • Does anyone here know how to make a background soundtrack for a Tai Chi Video?

    Good morning,
    Does anyone here know how to make a background soundtrack for a Tai Chi Video in Garageband. I have been looking around at the different sounds and music in Garageband but I have not been able to find anything that would go with the video.
    Here is an example of a Tai chi video if you were wondering
    http://youtu.be/a6pJf2otwv8
    I want to create something like this for a video I did for a fitness gym for a Yoga instructor and Tai Chi instructor.
    Any tips would be appreciated.

    Brandon,
    you will not have to do any importing in GarageBand. Intalling Mainstage will extent GarageBands Loop Library and Instruments Library.
    After you installed MainStage the additional loops and Instruments will show in GarageBand just like all other Loops. you will simply see more loops.
    For example:
    or:

Maybe you are looking for

  • 2nd generation nano ipod

    My 2nd generation nano ipod has not been in use for several years. Now, when I connect it to the laptop, it's recognised, yet the screen displays a dark colour and wouldn't operate normally. Any idea what does that mean?

  • RDI File to be generated with SAP Script

    Hello , We need to generate RDI file for a SAP Script in transaction VA11.Please can  anyone let me know do we have to do the settings through configuration or programmatically in the SAP Script. Regards Amruta Prayagi

  • Index trouble

    Dear all, I have a question about formating the index in Pages. It works fine, I know how to create an automatic index. The only thing that's confusing to me is how do I get spaces between de text of the indexed page and the pagenumber. For example N

  • Creative Suite 4 - Licensing has stopped working

    I was using Adobe Acrobat 9 Pro today, and I received an error to restart my PC, and open another program.  When I tried to open Photoshop, I received an error message:  "Licensing for this product has stopped working.  This product has encountered a

  • Importing Mac OS 9/Multiple Users/Netscape 4.8 addresses into Address Book

    Hello there, my wife has made the leap from Mac OS 9.2.2 to Mac OS X 10.4.3, and we're trying to figure out how to import her Netscape 4.8 addresses into Address Book. The complicating factor is that her computer ran with Multiple Users under Mac OS