Do not daemonize (fork) the daemon process

When starting the daemon using an init system, the environment setup
is already being handled by the init system, so there is no need
to daemonize the daemon process create such setup.

By daemonizing the daemon process, it spawns off a new process to
run the daemon and terminates the current process. This causes
a problem with the init system, where it thinks that the daemon
failed to start. We were able to work around it on Chrome OS's
upstart script by adding the forking expectation in the init
scritp ("expect fork"), but there is not such workaround on
Android's init system.

Fix it by removing the daemonize call (daemon()) and remove the
the forking expectation on Chrome OS's init script.

Bug: 24412675
TEST=start/stop shill on Chrome OS device

Change-Id: Ib584e52f13946b2d18692e85ff55f86d22022505
2 files changed
tree: 53e64fa7df9b9290ada5983d26cf6720120e698e
  1. bin/
  2. cellular/
  3. dbus/
  4. dbus_bindings/
  5. dhcp/
  6. doc/
  7. ethernet/
  8. init/
  9. mobile_operator_db/
  10. net/
  11. pppoe/
  12. setup_wifi/
  13. shims/
  14. supplicant/
  15. test-rpc-proxy/
  16. test-scripts/
  17. udev/
  18. upstart/
  19. vpn/
  20. wifi/
  21. wimax/
  22. .gitignore
  23. accessor_interface.h
  24. active_link_monitor.cc
  25. active_link_monitor.h
  26. active_link_monitor_unittest.cc
  27. adaptor_interfaces.h
  28. Android.mk
  29. arp_client.cc
  30. arp_client.h
  31. arp_client_test_helper.cc
  32. arp_client_test_helper.h
  33. arp_client_unittest.cc
  34. arp_packet.cc
  35. arp_packet.h
  36. arp_packet_unittest.cc
  37. async_connection.cc
  38. async_connection.h
  39. async_connection_unittest.cc
  40. callbacks.h
  41. certificate_file.cc
  42. certificate_file.h
  43. certificate_file_unittest.cc
  44. chromeos_daemon.cc
  45. chromeos_daemon.h
  46. chromeos_daemon_unittest.cc
  47. connection.cc
  48. connection.h
  49. connection_diagnostics.cc
  50. connection_diagnostics.h
  51. connection_diagnostics_unittest.cc
  52. connection_health_checker.cc
  53. connection_health_checker.h
  54. connection_health_checker_unittest.cc
  55. connection_info.cc
  56. connection_info.h
  57. connection_info_reader.cc
  58. connection_info_reader.h
  59. connection_info_reader_unittest.cc
  60. connection_info_unittest.cc
  61. connection_tester.cc
  62. connection_tester.h
  63. connection_tester_unittest.cc
  64. connection_unittest.cc
  65. connectivity_trial.cc
  66. connectivity_trial.h
  67. connectivity_trial_unittest.cc
  68. control_interface.h
  69. crypto_des_cbc.cc
  70. crypto_des_cbc.h
  71. crypto_des_cbc_unittest.cc
  72. crypto_interface.h
  73. crypto_provider.cc
  74. crypto_provider.h
  75. crypto_provider_unittest.cc
  76. crypto_rot47.cc
  77. crypto_rot47.h
  78. crypto_rot47_unittest.cc
  79. crypto_util_proxy.cc
  80. crypto_util_proxy.h
  81. crypto_util_proxy_unittest.cc
  82. dbus_properties_proxy_interface.h
  83. default_profile.cc
  84. default_profile.h
  85. default_profile_unittest.cc
  86. device.cc
  87. device.h
  88. device_claimer.cc
  89. device_claimer.h
  90. device_claimer_unittest.cc
  91. device_info.cc
  92. device_info.h
  93. device_info_unittest.cc
  94. device_stub.h
  95. device_unittest.cc
  96. dns_client.cc
  97. dns_client.h
  98. dns_client_factory.cc
  99. dns_client_factory.h
  100. dns_client_unittest.cc
  101. dns_server_tester.cc
  102. dns_server_tester.h
  103. dns_server_tester_unittest.cc
  104. eap_credentials.cc
  105. eap_credentials.h
  106. eap_credentials_unittest.cc
  107. eap_listener.cc
  108. eap_listener.h
  109. eap_listener_unittest.cc
  110. eap_protocol.h
  111. ephemeral_profile.cc
  112. ephemeral_profile.h
  113. error.cc
  114. error.h
  115. error_unittest.cc
  116. event_dispatcher.cc
  117. event_dispatcher.h
  118. external_task.cc
  119. external_task.h
  120. external_task_unittest.cc
  121. fake_store.cc
  122. fake_store.h
  123. file_io.cc
  124. file_io.h
  125. file_reader.cc
  126. file_reader.h
  127. file_reader_unittest.cc
  128. firewall_proxy_interface.h
  129. geolocation_info.cc
  130. geolocation_info.h
  131. HACKING
  132. hook_table.cc
  133. hook_table.h
  134. hook_table_unittest.cc
  135. http_proxy.cc
  136. http_proxy.h
  137. http_proxy_unittest.cc
  138. http_request.cc
  139. http_request.h
  140. http_request_unittest.cc
  141. http_url.cc
  142. http_url.h
  143. http_url_unittest.cc
  144. icmp.cc
  145. icmp.h
  146. icmp_session.cc
  147. icmp_session.h
  148. icmp_session_factory.cc
  149. icmp_session_factory.h
  150. icmp_session_unittest.cc
  151. icmp_unittest.cc
  152. ip_address_store.cc
  153. ip_address_store.h
  154. ip_address_store_unittest.cc
  155. ipconfig.cc
  156. ipconfig.h
  157. ipconfig_unittest.cc
  158. json_store.cc
  159. json_store.h
  160. json_store_unittest.cc
  161. key_file_store.cc
  162. key_file_store.h
  163. key_file_store_unittest.cc
  164. key_value_store.cc
  165. key_value_store.h
  166. key_value_store_unittest.cc
  167. libshill-client-test.pc.in
  168. libshill-client.pc.in
  169. link_monitor.cc
  170. link_monitor.h
  171. link_monitor_unittest.cc
  172. logging.cc
  173. logging.h
  174. manager.cc
  175. manager.h
  176. manager_unittest.cc
  177. metrics.cc
  178. metrics.h
  179. metrics_unittest.cc
  180. mock_active_link_monitor.cc
  181. mock_active_link_monitor.h
  182. mock_adaptors.cc
  183. mock_adaptors.h
  184. mock_ares.cc
  185. mock_ares.h
  186. mock_arp_client.cc
  187. mock_arp_client.h
  188. mock_async_connection.cc
  189. mock_async_connection.h
  190. mock_certificate_file.cc
  191. mock_certificate_file.h
  192. mock_connection.cc
  193. mock_connection.h
  194. mock_connection_health_checker.cc
  195. mock_connection_health_checker.h
  196. mock_connection_info_reader.cc
  197. mock_connection_info_reader.h
  198. mock_connectivity_trial.cc
  199. mock_connectivity_trial.h
  200. mock_control.cc
  201. mock_control.h
  202. mock_crypto_util_proxy.cc
  203. mock_crypto_util_proxy.h
  204. mock_dbus_manager.cc
  205. mock_dbus_manager.h
  206. mock_dbus_properties_proxy.cc
  207. mock_dbus_properties_proxy.h
  208. mock_device.cc
  209. mock_device.h
  210. mock_device_claimer.cc
  211. mock_device_claimer.h
  212. mock_device_info.cc
  213. mock_device_info.h
  214. mock_dns_client.cc
  215. mock_dns_client.h
  216. mock_dns_client_factory.cc
  217. mock_dns_client_factory.h
  218. mock_dns_server_tester.cc
  219. mock_dns_server_tester.h
  220. mock_eap_credentials.cc
  221. mock_eap_credentials.h
  222. mock_eap_listener.cc
  223. mock_eap_listener.h
  224. mock_event_dispatcher.cc
  225. mock_event_dispatcher.h
  226. mock_external_task.cc
  227. mock_external_task.h
  228. mock_file_io.h
  229. mock_firewall_proxy.h
  230. mock_http_request.cc
  231. mock_http_request.h
  232. mock_icmp.cc
  233. mock_icmp.h
  234. mock_icmp_session.cc
  235. mock_icmp_session.h
  236. mock_icmp_session_factory.cc
  237. mock_icmp_session_factory.h
  238. mock_ip_address_store.cc
  239. mock_ip_address_store.h
  240. mock_ipconfig.cc
  241. mock_ipconfig.h
  242. mock_link_monitor.cc
  243. mock_link_monitor.h
  244. mock_log.cc
  245. mock_log.h
  246. mock_log_unittest.cc
  247. mock_manager.cc
  248. mock_manager.h
  249. mock_metrics.cc
  250. mock_metrics.h
  251. mock_passive_link_monitor.cc
  252. mock_passive_link_monitor.h
  253. mock_pending_activation_store.cc
  254. mock_pending_activation_store.h
  255. mock_portal_detector.cc
  256. mock_portal_detector.h
  257. mock_power_manager.cc
  258. mock_power_manager.h
  259. mock_power_manager_proxy.cc
  260. mock_power_manager_proxy.h
  261. mock_ppp_device.cc
  262. mock_ppp_device.h
  263. mock_ppp_device_factory.cc
  264. mock_ppp_device_factory.h
  265. mock_process_manager.cc
  266. mock_process_manager.h
  267. mock_profile.cc
  268. mock_profile.h
  269. mock_property_store.cc
  270. mock_property_store.h
  271. mock_resolver.cc
  272. mock_resolver.h
  273. mock_routing_table.cc
  274. mock_routing_table.h
  275. mock_service.cc
  276. mock_service.h
  277. mock_service_watcher.h
  278. mock_socket_info_reader.cc
  279. mock_socket_info_reader.h
  280. mock_store.cc
  281. mock_store.h
  282. mock_traffic_monitor.cc
  283. mock_traffic_monitor.h
  284. mock_virtual_device.cc
  285. mock_virtual_device.h
  286. MODULE_LICENSE_APACHE2
  287. NETLINK_MESSAGES.txt
  288. nice_mock_control.cc
  289. nice_mock_control.h
  290. NOTICE
  291. OWNERS
  292. passive_link_monitor.cc
  293. passive_link_monitor.h
  294. passive_link_monitor_unittest.cc
  295. pending_activation_store.cc
  296. pending_activation_store.h
  297. pending_activation_store_unittest.cc
  298. portal_detector.cc
  299. portal_detector.h
  300. portal_detector_unittest.cc
  301. power_manager.cc
  302. power_manager.h
  303. power_manager_proxy_interface.h
  304. power_manager_proxy_stub.cc
  305. power_manager_proxy_stub.h
  306. power_manager_unittest.cc
  307. ppp_daemon.cc
  308. ppp_daemon.h
  309. ppp_daemon_unittest.cc
  310. ppp_device.cc
  311. ppp_device.h
  312. ppp_device_factory.cc
  313. ppp_device_factory.h
  314. ppp_device_unittest.cc
  315. PRESUBMIT.cfg
  316. process_manager.cc
  317. process_manager.h
  318. process_manager_unittest.cc
  319. profile.cc
  320. profile.h
  321. profile_unittest.cc
  322. property_accessor.h
  323. property_accessor_unittest.cc
  324. property_iterator.h
  325. property_observer.h
  326. property_observer_interface.h
  327. property_observer_unittest.cc
  328. property_store.cc
  329. property_store.h
  330. property_store_unittest.cc
  331. property_store_unittest.h
  332. protobuf_lite_streams.cc
  333. protobuf_lite_streams.h
  334. provider_db_unittest.bfd
  335. provider_interface.h
  336. refptr_types.h
  337. resolver.cc
  338. resolver.h
  339. resolver_unittest.cc
  340. result_aggregator.cc
  341. result_aggregator.h
  342. result_aggregator_unittest.cc
  343. routing_table.cc
  344. routing_table.h
  345. routing_table_entry.h
  346. routing_table_unittest.cc
  347. rpc_service_watcher_interface.h
  348. rpc_task.cc
  349. rpc_task.h
  350. rpc_task_unittest.cc
  351. scope_logger.cc
  352. scope_logger.h
  353. scope_logger_unittest.cc
  354. scoped_umask.cc
  355. scoped_umask.h
  356. service.cc
  357. service.h
  358. service_property_change_notifier.cc
  359. service_property_change_notifier.h
  360. service_property_change_test.cc
  361. service_property_change_test.h
  362. service_sorter.h
  363. service_under_test.cc
  364. service_under_test.h
  365. service_unittest.cc
  366. shill-client.gyp
  367. shill.gyp
  368. shill.gypi
  369. shill_ares.cc
  370. shill_ares.h
  371. shill_config.cc
  372. shill_config.h
  373. shill_daemon.cc
  374. shill_daemon.h
  375. shill_main.cc
  376. shill_test_config.cc
  377. shill_test_config.h
  378. shill_unittest.cc
  379. socket_info.cc
  380. socket_info.h
  381. socket_info_reader.cc
  382. socket_info_reader.h
  383. socket_info_reader_unittest.cc
  384. socket_info_unittest.cc
  385. static_ip_parameters.cc
  386. static_ip_parameters.h
  387. static_ip_parameters_unittest.cc
  388. store_factory.cc
  389. store_factory.h
  390. store_interface.h
  391. stub_storage.h
  392. technology.cc
  393. technology.h
  394. technology_unittest.cc
  395. test_event_dispatcher.h
  396. TESTING
  397. testing.h
  398. testrunner.cc
  399. tethering.cc
  400. tethering.h
  401. traffic_monitor.cc
  402. traffic_monitor.h
  403. traffic_monitor_unittest.cc
  404. virtual_device.cc
  405. virtual_device.h
  406. virtual_device_unittest.cc