为什么我的.bashrc脚本不按顺序执行/不等待步骤完成?

我需要教师在偏远地区填写电子登记册,而且他们需要能够快速做到这一点,而且必须做的最less。 为了做到这一点,我已经build立了一个“香草”Debian 6安装上网本除了rdesktop之外没有任何东西。 上网本自动login(通过/ etc / inittab),然后使用用户主目录中的.profile .bashrc文件重新启动networking(修复dhcp错误),启动startx作为窗口服务器,然后启动rdesktop进入terminal服务器采取登记。 这个工作很失败,老师在不到30秒的时间内就被提交了他们的registry。

我想要发生的是,当他们closuresrdesktop(注销terminal服务器)笔记本电脑closures,但迄今为止失败了。 我原本只是把shutdown命令添加到脚本的下一行,但由于某些无法解释的原因,脚本运行不正常,机器在rdesktop运行之前closures。 我认为这是因为rdesktop是“分叉”。有没有一种方法可以等待rdesktop在脚本的其余部分运行之前退出?

我已经试过了:在关机之前关机等待hibernate

我知道我可以如何做到这一点在Visual Basic / VBScript /batch file,但我是非常新的Linux,我开始认为我错过了明显的或愚蠢的!

我的文件如下:

/home/user/.profile: sudo dhclient startx -- :1 /home/user/.bashrc: rdesktop -u "" -k en-gb -f servername 

(缺less用户名是故意的,因为它使得terminal服务器不用用上网本的linux用户名login用户名来login)

实际上可能发生的事情是.bashrc运行得比您想象的要多。

如果运行并且没有X屏幕或DISPLAYvariables,则rdesktop将会失败,然后closures将运行。 @ dimmer的解决scheme应该处理,虽然有一个更清洁的方法。

如果将shutdown命令放在startx命令之后并将rdesktop命令放入用户的.xinitrc中,它应该可以工作。 这可能会更清洁,更健壮。 试试看。

你有没有试过这个:

/home/user/.bashrc

 rdesktop -u "" -k en-gb -f servername && sudo shutdown -h now