为 Travis CI 运行的机器实例 start some services by default这对 my project 没有用.因此我想停止这些服务。我的第一个想法是在我的 .travis.yml 中使用以下 block 来执行此操作:
before_script:
# Disable services enabled by default
- sudo service mysql stop
- sudo service postgresql stop
但是,这对一台机器成功而对另一台机器失败:
$ sudo service mysql stop
mysql stop/waiting
$ sudo service postgresql stop
* Stopping PostgreSQL 9.1 database server
...done.
* Stopping PostgreSQL 9.2 database server
...done.
* Stopping PostgreSQL 9.3 database server
...done.
...
$ sudo service mysql stop
stop: Unknown instance:
The command "sudo service mysql stop" failed and exited with 1 during .
另一个选项是 /etc/init.d/mysql stop
但这在通过 service
命令启动进程的机器上可能会失败。我可以在 .travis.yml 脚本中使用 try-catch 吗?
最佳答案
事实证明,使用提到的 /etc/init.d/...
效果更可靠。有一些警告说应该使用 sudo service ...
但我没有成功。所以这就是我现在正在运行的:
language: android
jdk:
- oraclejdk7
- openjdk7
android:
components:
# All the build system components should be at the latest version
- tools
- platform-tools
- build-tools-21.1.1
- android-19
# The libraries we can't get from Maven Central or similar
- extra-android-support
notifications:
email: true
before_script:
# Disable services enabled by default
# http://docs.travis-ci.com/user/database-setup/#MySQL
- sudo /etc/init.d/mysql stop
- sudo /etc/init.d/postgresql stop
# The following did not work reliable
# - sudo service mysql stop
# - sudo service postgresql stop
# Ensure Gradle wrapper is executable
- chmod +x gradlew
# Ensure signing configuration is present
- mv app/gradle.properties.example app/gradle.properties
script:
- ./gradlew clean assembleDebug
关于mysql - 如何停止默认运行的 Travis CI 上的服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27382295/