socat / ghostscript questions

Arthur Chance freebsd at qeng-ho.org
Tue Apr 20 16:24:14 UTC 2021


On 20/04/2021 17:17, Paul Procacci wrote:
> The hang is most likely because an EOF doesn't get trasmitted over the wire.
> Adding a timeout I believe should fix the problem.
> 
> nc -w 1 [addr] [port] < filename.txt

Better to use the -N flag.

-N      shutdown(2) the network socket after EOF on the input.  Some
        servers require this to finish their work.



> On Tue, Apr 20, 2021 at 11:51 AM James B. Byrne via freebsd-questions <
> freebsd-questions at freebsd.org> wrote:
> 
>> I am trying to produce pdf files using socat and ghostscript.  I have this
>> command for socat:
>>
>> socat TCP4-LISTEN:9100,bind=192.168.216.41,fork,reuseaddr SYSTEM:'gs
>> -dQUIET
>> -dNOPROMPT -dBATCH -sDEVICE=pdfwrite -sOutputFile=/tmp/\"$(date
>> -Iseconds)\".pdf -'
>>
>>
>> Which I try to send a text file to using cat and nc:
>>
>> cat sshpipe3.txt | nc 192.168.216.41 9100
>>
>>
>> What happens is that the cat/nc pipe hangs.  This is probably an artifact
>> of
>> how nc works but I need to check that is so.  When I terminate nc with
>> <ctrl>-c
>> the socat gs instance reports an error:
>>
>> GPL Ghostscript 9.52: Unrecoverable error, exit code 1
>> 2021/04/20 11:32:51 socat[67296] E write(6, 0x800adf000, 128): Broken pipe
>>
>> This produces an empty file named like /tmp/2021-04-20T11:13:20-04:00.pdf.
>>
>> I am no doubt missing the obvious here so I have a few naive questions:
>>
>> 1. Is it possible to terminate the sending process without causing GS to
>> issue
>> an error?
>>
>> 2. Would printing from another host to that socat instance result in the
>> same
>> broken pipe error?
>>
>> 3. Why are the files that gs creates empty?
>>
>> 4. How do I send a text file to the socat instance so that it is converted
>> to a
>> pdf document?
>>

> 


-- 
Lebowskisort, aka dudesort, an O(1) sorting algorithm:

"Man, the array is cool as it is. Let's go bowling."


More information about the freebsd-questions mailing list