我在用Ubuntu 18.04.3 LTS
。
目前,要启动我的开发环境,我必须在终端中运行以下每个命令:
sudo systemctl stop apache2
sudo /opt/lampp/manager-linux-x64.run
sudo /opt/PhpStorm-193.6015.48/bin/phpstorm.sh
sudo chmod -R 777 Desktop/Code/testProject
我希望双击桌面上的脚本并自动生成需要在后台运行的两个终端lampp
,phpstorm
但是,当前执行脚本时它仅启动-server lampp
。
有什么建议我做错了吗?
感谢您的回复!
答案1
这是 Bash 的预期行为。它会按顺序处理命令,并等待前一个命令完成后再继续。但如果它没有结束,那么它就会陷入等待状态。
如果您不介意看不到某个进程,您可以做的是运行命令后跟一个&
符号。这将启动该进程作为子进程,因此您看不到它,但它会在后台运行。
例如:sudo /path/to/command.sh &
如果你需要它可见,你可以这样运行它gnome-terminal -e command
。这将打开另一个终端窗口并在该窗口中运行指定的进程,而前一个窗口则继续正常运行。
你的脚本可能看起来像这样。
sudo systemctl stop apache2
sudo gnome-terminal -e /opt/lampp/manager-linux-x64.run
sudo /opt/PhpStorm-193.6015.48/bin/phpstorm.sh
sudo chmod -R 777 Desktop/Code/testProject