如何停止默认运行Travis CI的服务?

JJD*_*JJD 6 mysql postgresql yaml travis-ci

默认情况下,为Travis CI运行的机器实例会启动一些我的项目无用的服务.因此我想停止这些服务.我的第一个想法是在我的.travis.yml中使用以下块来执行此操作:

before_script:
  # Disable services enabled by default
  - sudo service mysql stop
  - sudo service postgresql stop
Run Code Online (Sandbox Code Playgroud)

但是,这对于一台机器来说是成功的,而另一台机器则失败

$ 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.
Run Code Online (Sandbox Code Playgroud)

...

$ sudo service mysql stop    
stop: Unknown instance:

The command "sudo service mysql stop" failed and exited with 1 during .
Run Code Online (Sandbox Code Playgroud)

另一种选择是,/etc/init.d/mysql stop但是在通过service命令启动进程的机器上可能会失败.我可以在.travis.yml脚本中使用try-catch 吗?

JJD*_*JJD 7

事实证明,使用上述/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
Run Code Online (Sandbox Code Playgroud)