0
guidol

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

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 :)
 

Share this post


Link to post
Share on other sites
40 minutes ago, guidol said:

I did found out that when entering the command "exit" this shell

I've faced the same issue earlier today, but didn't figured out why yet ...

Share this post


Link to post
Share on other sites

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 :(

Share this post


Link to post
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

Share this post


Link to post
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?

Share this post


Link to post
Share on other sites

maybe in $TMPFILE, use return to replace exit?

 

because I can only test euid !=0.  no such error.

Share this post


Link to post
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"?

Share this post


Link to post
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)...

Share this post


Link to post
Share on other sites
3 minutes ago, guidol said:

Or is there a revert-command

If you modified a file and wish to revert to git version, simply do "git checkout -- <filename>" ...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
0