So, this appears to be doable.
But should I assume that the svcadm executable is
not relocatable?

Tim Bell wrote:
> James Carlson wrote:
>
>> I'd use:
>>
>>     if [ -x /usr/sbin/svcadm ]; then
>>         # SMF is present
>>     else
>>         # SMF is not present
>>     fi
>>
>> In other words, test for the feature you actually want, rather than
>> some unrelated artifact of the system, such as the kernel's version
>> number.
>
> I completely agree with the words above.  Many well intentioned version
> checks grow stale and cause problems later.
>
Right.
>> (Not sure what the Java equivalent would be, but there ought to be
>> one.)
>
> This would get you started:
>
> public class SvcCheck {
>     public static boolean check() {
>         java.io.File fi = new java.io.File ("/usr/sbin/svcadm");
>         return (fi.exists() && fi.canExecute());
>     }
>
>     public static void main(String[] args) {
>         if (check()) {
>             System.out.println("svcadm is available");
>             /* Go off and work with svcadm */
>         } else {
>             System.out.println("svcadm not found");
>         }
>     }
> }
>
>
> % javac SvcCheck.java
> % uname -r
> 5.11
> % java SvcCheck
> svcadm is available
>
> Over on a legacy system:
>
> % uname -r
> 5.9
> % java SvcCheck
> svcadm not found
>
> Hope this helps - Tim
> _______________________________________________
> smf-discuss mailing list
> smf-discuss at opensolaris.org

Reply via email to