And for system programs, set shell=False.


On 04/10/2018 09:19 PM, Patrick Palczewski wrote:
Patrick Palczewski <psykiatris@gmail.com> added the comment:

Final report and recommendation:

1. If shell-True, subprocess will execute /bin/bash. Code works if an 
executable shell script and arguments are provided.

2. it is better to pass arguments in as a list. Example: cmd=['ping', 
'8.8.8.8;, '-c 10']. If you do this, you do not need to specify an 
executable= setting.

3. p.communicate() closes the stdin, stdout, stderr streams, collects 
all input for output. Inserting 10 newlines (\n) has no effect. It is 
appropriate to leave it empty, or use None.

4. The only way text can be inserted into the stdin is if the external 
program has a function to do the following: 
sys.stdout.write(sys.stdin.read(). This can be done internally with 
Jython and Python code.

I've attached the updated tnsping.py scrpt. My previous patches were 
poorly thought out and will not work. My apologies.

Recommendation: Mark this issue as invalid as the code works with no 
errors with the minor changes that were made.

On 04/07/2018 09:23 AM, Patrick Palczewski wrote:
Patrick Palczewski <psykiatris@gmail.com> added the comment:

Yes, I saw in the documentation after I posted. It was pretty late. :/


Added file: http://bugs.jython.org/file1623/unnamed
Added file: http://bugs.jython.org/file1624/tnsping.py

_______________________________________
Jython tracker <report@bugs.jython.org>
<http://bugs.jython.org/issue2664>
_______________________________________

--
Patrick Palczewski VRS# 818.208.2344