Jump to content

[Q] bash: cannot set terminal process group at compile.sh


guidol
 Share

Recommended Posts

I got a little problem :(
I interrupted the first lines of the compile.sh and now I do get the error:
 

root@core2duo(192.168.6.19):/home/guido/build# ./compile.sh EXPERT=yes

bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell

I did found out that when entering the command "exit" this shell will close and the normal menu driven compile gui does start,

but maybe anyone could give me a hint to resolve this issue?

 

Many Thanks in advance :)
 

Link to comment
Share on other sites

Help Armbian team helping you!

some pages on the net say something about /dev/pts, but it looks OK for me and is available

 

It seems to have somehting to do with changeing the user?:
 

root@core2duo(192.168.6.19):/home/guido# su guido
bash: cannot set terminal process group (1455): Inappropriate ioctl for device
bash: no job control in this shell
guido@core2duo(192.168.6.19):~$

Its something about the "interactive" part of the bash.....but I couldnt find a solution by now :(

Link to comment
Share on other sites

2 hours ago, Igor said:

@guidol

Is this still present? Do manual apt pull inside ... we have a broken pulling at this moment.

A apt pull inside? 

I did a "apt update -y && apt upgrade -y" but it didnt help :(

Thats the point where I what I get after the "exit":
 

root@core2duo(192.168.6.19):/home/guido/build# exit
exit
 ...waiting for child to terminate.
[ o.k. ] Using config file [ /home/guido/build/userpatches/config-example.conf ]
[ o.k. ] Command line: setting EXPERT to [ yes ]
[ o.k. ] Preparing [ host ]
[ o.k. ] Build host OS release [ bionic ]
[ o.k. ] Syncing clock [ host ]

So it should be anything before these alert-lines.

BTW: Iam running on real hardware - no Docker/Vagrant/VMBox - so all if-statements shouldnt apply to my installation

Link to comment
Share on other sites

1 hour ago, Igor said:

git pull

but you did wrote before "apt pull" ;)

 

"git pull" doesnt seem to have a effect on my system because

root@core2duo(192.168.6.19):/home/guido/build# git pull
Already up to date.

I did set some breakpoints in the compile script and the problem seems to be in this if statement, because I get the echo "before messup" and then the error-message.

 

The command with the Problem is, because of the output EUID0:
 

su `stat --format=%U $SRC/.git` -c bash $TMPFILE

 

[EDIT] @Igor maybe the command neeeds a "="? I checked the git command for the option -c and this needs
<name>=<value>

but here if bash is the name $TMPFILE isnt the value - because there is no "="

How about this line - with this I didnt get a error:
 

su `stat --format=%U $SRC/.git` -c bash=$TMPFILE

 

 

 

script-part and output of the breakpoints:

echo "before messup"
echo "Sleep 5"
sleep 5


#do not update/checkout git with root privileges to messup files onwership.
#due to in docker/VM, we can't su to a normal user, so do not update/checkout git.
if [[ `systemd-detect-virt` == 'none' ]]; then
        if [[ $EUID == 0 ]]; then
                echo "EUID0" && su `stat --format=%U $SRC/.git` -c bash $TMPFILE
        else
                echo "EUID1" && bash $TMPFILE
        fi
fi

rm $TMPFILE

echo "After messup"
echo "Sleep 5"
sleep 5

===============================================================================

root@core2duo(192.168.6.19):/home/guido/build# ./compile.sh EXPERT=yes
Update Part
After Update
Sleep 5
before messup
Sleep 5
EUID0
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell

root@core2duo(192.168.6.19):/home/guido/build# exit
exit
 ...waiting for child to terminate.
After messup
Sleep 5

 How can we correct ownership if messed up?

Is there a alternative command for real-hardware?

Link to comment
Share on other sites

2 hours ago, ning said:

I have a fix: https://github.com/armbian/build/pull/1581

sorry for that.

Thanks for the fix! :)
I inserted it in my compile.sh manually ;)

Will the system update compile.sh when you pull request is commited?

Because of

error: Your local changes to the following files would be overwritten by merge:
        compile.sh
Please commit your changes or stash them before you merge.
Aborting
[ warn ] Can't update since you made changes to:
compile.sh
Press <Ctrl-C> or exit to abort compilation, <Enter> to ignore and continue, diff to display changes
diff
diff --git a/compile.sh b/compile.sh
index 048a7b5..7ce4396 100755
--- a/compile.sh
+++ b/compile.sh
@@ -76,7 +76,7 @@ echo update_src >> $TMPFILE
 #due to in docker/VM, we can't su to a normal user, so do not update/checkout git.
 if [[ `systemd-detect-virt` == 'none' ]]; then
        if [[ $EUID == 0 ]]; then
-               su `stat --format=%U $SRC/.git` -c bash $TMPFILE
+               su `stat --format=%U $SRC/.git` -c "bash $TMPFILE"
        else
                bash $TMPFILE
        fi
Press <Ctrl-C> or exit to abort compilation, <Enter> to ignore and continue, diff to display changes

Or have we to replace compile.sh and a "checksum-file"?

Link to comment
Share on other sites

9 minutes ago, martinayotte said:

It is already merged, issue is gone ...

Cool :)
OK, I reverted the changes to get the original state and then I did a "git pull" inside the build-directory:
 

root@core2duo(192.168.6.19):/home/guido/build# git pull
Updating 2c0adc0..de58ac1
Fast-forward
 compile.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Is there any other git-command to overwrite changes while "git pull"?
Or is there a revert-command (stash the changes)?

 

I do only found ideas like

https://gist.github.com/vladimirtsyupko/10964772

but dont know how to aplly them to the armbian-git (master)...

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...