docs: def sendline(self, sendspec):
  		"""Sends line, handling background and newline directives.
  
  		True means: 'all handled here ok'
  		False means: you'll need to 'expect' the right thing from here.
  		"""
  		assert not sendspec.started, shutit_util.print_debug()
  		shutit = self.shutit
  		shutit.log('Sending in pexpect session (' + str(id(self)) + '): ' + str(sendspec.send), level=logging.DEBUG)
  		if sendspec.expect:
  			shutit.log('Expecting: ' + str(sendspec.expect), level=logging.DEBUG)
  		else:
  			shutit.log('Not expecting anything', level=logging.DEBUG)
  		try:
  			# Check there are no background commands running that have block_other_commands set iff
  			# this sendspec says
  			if self._check_blocked(sendspec) and sendspec.ignore_background != True:
  				shutit.log('sendline: blocked', level=logging.DEBUG)
  				return False
  			# If this is marked as in the background, create a background object and run in the background.
  			if sendspec.run_in_background:
  				shutit.log('sendline: run_in_background', level=logging.DEBUG)
  				# If this is marked as in the background, create a background object and run in the background after newlines sorted.
  				shutit_background_command_object = self.login_stack.get_current_login_item().append_background_send(sendspec)
  				# Makes no sense to check exit for a background command.
  				sendspec.check_exit = False
  			if sendspec.nonewline != True:
  				sendspec.send += '\n'
  				# sendspec has newline added now, so no need to keep marker
  				sendspec.nonewline = True
  			if sendspec.run_in_background:
  				shutit_background_command_object.run_background_command()
  				return True
  			#shutit.log('sendline: actually sending: ' + sendspec.send, level=logging.DEBUG)
  			self.pexpect_child.send(sendspec.send)
  			return False
  		except OSError:
  			self.shutit.fail('Caught failure to send, assuming user has exited from pause point.')