Status of a clean install in a VM and/or Container, so testable rather trivial: $ systemctl status iscsid open-iscsi ● iscsid.service - iSCSI initiator daemon (iscsid) Loaded: loaded (/lib/systemd/system/iscsid.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-05-23 10:52:11 UTC; 7min ago Docs: man:iscsid(8) Process: 751 ExecStart=/sbin/iscsid (code=exited, status=0/SUCCESS) Process: 721 ExecStartPre=/lib/open-iscsi/startup-checks.sh (code=exited, status=0/SUCCESS) Main PID: 759 (iscsid) Tasks: 2 (limit: 548) CGroup: /system.slice/iscsid.service ├─754 /sbin/iscsid └─759 /sbin/iscsid May 23 10:52:11 b1 systemd[1]: Starting iSCSI initiator daemon (iscsid)... May 23 10:52:11 b1 systemd[1]: iscsid.service: Failed to parse PID from file /run/iscsid.pid: Invalid argument May 23 10:52:11 b1 iscsid[754]: iSCSI daemon with pid=759 started! May 23 10:52:11 b1 systemd[1]: Started iSCSI initiator daemon (iscsid). ● open-iscsi.service - Login to default iSCSI targets Loaded: loaded (/lib/systemd/system/open-iscsi.service; enabled; vendor preset: enabled) Active: inactive (dead) Condition: start condition failed at Wed 2018-05-23 10:52:11 UTC; 7min ago ├─ ConditionDirectoryNotEmpty=|/etc/iscsi/nodes was not met └─ ConditionDirectoryNotEmpty=|/sys/class/iscsi_session was not met Docs: man:iscsiadm(8) man:iscsid(8) It is important to note that these are not "the same" service twice. both belong to the same package: dpkg -S /lib/systemd/system/open-iscsi.service /lib/systemd/system/iscsid.service open-iscsi: /lib/systemd/system/open-iscsi.service open-iscsi: /lib/systemd/system/iscsid.service But the two are doing rather different things: open-iscsi.service: logs into iSCSI targets if some are configured (Condition stops it from doing so) - this is more a one-shot configure-devices and not a real service iscsi.service: the basic service daemone, required by the service above I think here we might learn from Fedora: Default is: [root@fedora ~]# systemctl status iscsid.socket iscsid.service ● iscsid.socket - Open-iSCSI iscsid Socket Loaded: loaded (/usr/lib/systemd/system/iscsid.socket; enabled; vendor preset: disabled) Active: active (listening) since Wed 2018-05-23 11:26:37 UTC; 9s ago Docs: man:iscsid(8) man:iscsiadm(8) Listen: @ISCSIADM_ABSTRACT_NAMESPACE (Stream) May 23 11:26:37 fedora systemd[1]: Listening on Open-iSCSI iscsid Socket. ● iscsid.service - Open-iSCSI Loaded: loaded (/usr/lib/systemd/system/iscsid.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: man:iscsid(8) man:iscsiadm(8) May 23 11:26:09 fedora systemd[1]: iscsid.service: Failed to reset devices.list: Operation not permitted May 23 11:26:09 fedora systemd[1]: Starting Open-iSCSI... And the related config in /etc/iscsid.conf says: # Use socket activation, but try to make sure the socket units are listening iscsid.startup = /bin/systemctl start iscsid.socket iscsiuio.socket (We don't have the uio, but you get the idea - initially only ensure the socket runs.) The socket then does: # systemctl cat iscsid.socket # /usr/lib/systemd/system/iscsid.socket [Unit] Description=Open-iSCSI iscsid Socket Documentation=man:iscsid(8) man:iscsiadm(8) [Socket] ListenStream=@ISCSIADM_ABSTRACT_NAMESPACE [Install] WantedBy=sockets.target The tools will reach that and activate the service: # surely fails and does nothing, but activates the service $ iscsiadm -m discovery -t st -p 1.2.3.4 Afterwards: ● iscsid.service - Open-iSCSI Loaded: loaded (/usr/lib/systemd/system/iscsid.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2018-05-23 11:30:41 UTC; 7s ago So far our logic is inverse: 1. we start iscsid always 2. we pre-check if it is starte din open-iscsid ExecStartPre=/bin/systemctl --quiet is-active iscsid.service