func killPID(pid int) {
	process, err := os.FindProcess(pid)
	if err != nil {
		return
	}
	process.Signal(syscall.SIGKILL)
	process.Release()
	Eventually(func() bool {
		return utils.IsPIDRunning(pid)
	}, COMMAND_TIMEOUT, time.Millisecond*250).Should(BeFalse())
}
		})

		AfterEach(func() {
			Expect(os.Remove(configFile.Name())).NotTo(HaveOccurred())
		})

		testStoppingConsulProcess := func(pid int) {

			stop := exec.Command(pathToConfab,
				"stop",
				"--config-file", configFile.Name(),
			)
			Eventually(stop.Run, COMMAND_TIMEOUT, COMMAND_TIMEOUT).Should(Succeed())

			Eventually(func() bool {
				return utils.IsPIDRunning(pid)
			}, COMMAND_TIMEOUT, time.Millisecond*250).Should(BeFalse())

			Expect(fakeAgentOutputFromFile(consulConfigDir, "fake-output.json")).To(Equal(FakeAgentOutputData{
				PID: pid,
				Args: []string{
					"agent",
					fmt.Sprintf("-config-dir=%s", consulConfigDir),
					"-recursor=8.8.8.8",
					"-recursor=10.0.2.3",
				},
				LeaveCallCount: 1,
			}))

			serviceConfig, err := ioutil.ReadFile(filepath.Join(consulConfigDir, "service-cloud_controller.json"))
			Expect(err).NotTo(HaveOccurred())
		})

		DescribeTable("when the pidfile exists",
			func(pid string, isRunning bool) {
				err := ioutil.WriteFile(pidFile.Name(), []byte(pid), os.ModePerm)
				Expect(err).NotTo(HaveOccurred())

				processIsRunning := utils.IsRunningProcess(pidFile.Name())
				Expect(processIsRunning).To(Equal(isRunning))
			},
			Entry("returns false if the process is not running", "-1", false),
			Entry("returns true if the process is running", strconv.Itoa(os.Getpid()), true),
			Entry("returns false if the pidfile contains garbage", "something-bad", false),
		)

		It("returns false if the pidfile does not exist", func() {
			processIsRunning := utils.IsRunningProcess("/nonexistent/pidfile")
			Expect(processIsRunning).To(BeFalse())
		})
	})

	DescribeTable("IsPIDRunning",
		func(pid int, expected bool) {
			isRunning := utils.IsPIDRunning(pid)
			Expect(isRunning).To(Equal(expected))
		},
		Entry("returns true when the process is running", os.Getpid(), true),
		Entry("returns false when the process is not running", -1, false),
	)
})