[squeak-dev] Instruments for headless images

Igor Stasenko siguctua at gmail.com
Thu Jan 20 21:37:42 UTC 2011


On 20 January 2011 22:05, Chris Muller <asqueaker at gmail.com> wrote:
> The Ma stack does something similar, although not crippling the system
> to the same extent.
>
well, if by 'crippling' you mean preventing any unwanted activity when
headless.. then yes, i want it :)

> How do you determine you're running headless?  I attached my
> implementation of #maIsHeadless for determining whether the VM was
> launched headless.  Perhaps we should integrate this functionality
> into Squeak and Pharo (or a variant without the prefix, of course).
>
okay, as i suspected there is no direct way to determine that..

i don't like checking the command-line args, because obviously i can
build vm which completely ignores that. but since there is no other
options...


> Then, I use MaCommandLineProcessor which is concerned with handling
> the command-line Squeak was launched with:
>
> Then, I write my .st scripts like:
>

[snip]

ohh.. well, but that is too much for a simple script.
it would be good if image could provide something by default,
because i don't want to repeat expressions like this in each script i
write for running it in headless image. :)

>
>  - Chris
>
>
> On Thu, Jan 20, 2011 at 2:39 PM, Igor Stasenko <siguctua at gmail.com> wrote:
>> Hello folks.
>>
>> I'd like to ask, if there any 'standartized' instruments for headless
>> images (or alike).
>>
>> I need a simple things:
>>  - redirect all  ToolSet/UIManager messages to Transcript
>>  - redirect Transcript logging to file or stdout
>>
>> in short, these tools should serve a simple, yet important purpose:
>>  - if image runs in headless mode, it should suppress anything which
>> expecting user interaction (like showing warnings with 'continue'
>> button) and either log such messages to file
>> or simply quit image with error message.
>>
>> Without such tool it is quite difficult to monitor, what happens with
>> your headless image.. unless you have RFB installed.. but that is
>> different and unrelated story.
>>
>>
>> I did a prototype once for Hydra (you can check it at
>> SqS/HydraVM/HydraVM.mcz package)
>> there are two subclasses:
>> - MorphicUIManager subclass: #HydraUIManager
>> - StandardToolSet subclass: #HydraDebugToolSet
>>
>> and
>> - WriteStream subclass: #HydraTranscript
>>
>> which can be installed as a Transcript.
>>
>> And in order to prepare image to run in headless mode, i issued:
>>        ToolSet unregister: StandardToolSet.
>>        ToolSet register: HydraDebugToolSet.
>>        UIManager default: HydraUIManager new.
>>
>> Also, HydraTranscript
>> startUp does something like:
>>
>>        TranscriptStream
>>                newTranscript: (self basicNew initialize
>>                                on: (String new: 1000))
>>
>>
>> With that i could run the image in headless mode, knowing that in case
>> of error or warning etc, all will be redirected to transcript,
>> moreover i even stopped the UI process, so it never run on headless images.
>>
>> I wonder if there are other work, which can offer similar,
>> and is there any way to detect that image are running in headless mode?
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>>
>
>
>
>



-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list