On Wed, Jan 29, 2020 at 12:20 AM Subramanian Sridharan <clawsonfir...@gmail.com> wrote: > > I'm in need of using the "script" command (more info about script in the end) > in Linux to run a couple of commands and get the exit status of the second > command. > > Here is my code snippet: > > package main > > > import ( > "fmt" > "os/exec" > ) > > > func main() { > op, err := exec.Command("script", "-e", "-q", "-c", "date; exit > 1").CombinedOutput() > if err != nil { > fmt.Println("Error while running command:", err) > fmt.Println(string(op)) > return > } > fmt.Println("Successfully ran the command.") > fmt.Println(string(op)) > } > > When I compile this code and run it on two Red Hat VMs, they give me > different results. > > Working as expected in a Red Hat 8 VM: > [root@dc-rhel8-1 tmp]# ./script_command > Error while running command: exit status 1 > Wed Jan 29 21:41:20 IST 2020 > > > [root@dc-rhel8-1 tmp]# script -e -q -c "date; exit 1" > Wed Jan 29 21:42:11 IST 2020 > [root@dc-rhel8-1 tmp]# echo $? > 1 > [root@dc-rhel8-1 tmp]# script --version > script from util-linux 2.32.1 > > Incorrect working in a Red Hat 7 VM: > [root@dc-rhel7-dev tmp]# ./script_command > Successfully ran the command. > Wed Jan 29 21:41:41 IST 2020 > > > [root@dc-rhel7-dev tmp]# script -e -q -c "date; exit 1" > Wed Jan 29 21:42:22 IST 2020 > [root@dc-rhel7-dev tmp]# echo $? > 1 > [root@dc-rhel7-dev tmp]# script --version > script from util-linux 2.23.2 > > Is this behaviour an issue in Go? Or am I missing something? > > Thanks in advance! > > Some information on the script command: > By default, when I pipe output from RunCommand, the default terminal width is > 80, due to which the output will be scrambled and hard to parse. > So, I'm using the script command and stty to set the width to a bigger value. > -e is used to return the exit status of the child process > -q is used to keep output minimal > -c is used to specify the command that is to be run
I don't know what is happening here. It's fairly unlikely that it's a problem with Go, but it's not entirely impossible. The next debugging step would be to run the Go program under `strace -f` and see what the wait4 system call returns when the "script" command completes. Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAOyqgcUdbr5nUEE03%3DRXXgWL0o-%3DSQs%2BubskwQzv1SY3yr0sUw%40mail.gmail.com.