This directory contains sample systemd service files to start and stop the Helix Server and Broker services using systemd rather than SysV init scripts.
If you are using systemd (e.g. with CentOS 7.x), you do not need to add symlinks in /etc/init.d
, and do not need to run the chkconfig
commands as described in the SDP Guide.
These instructions apply only after the mkdirs.sh
script has been run for a given instance, as discussed in the SDP Guide.
To use the sample *.service files:
For each instance, create your own p4d_N.service file, copying from p4d_1.service. Here N is the instance name, e.g. '2' or 'acme'. If your instance has a broker, proxy, or other component that is to run on the current machine, create additional files as needed. See the p4broker_1.service file as an example.
Modify your *.service files, changing the Description fields as desired, and setting the ExecStart and ExecStop fields to call appropriate script to start and stop the particular service. For example, p4d_1.service would look like this:
[Unit]
Description=Helix Server Instance 1
Documentation=http://www.perforce.com/perforce/doc.current/manuals/p4sag/index.html
Requires=network.target NetworkManager-wait-online.service
After=network.target NetworkManager-wait-online.service
[Service]
Type=forking
ExecStart=/p4/1/bin/p4d_1_init start
ExecStop=/p4/1/bin/p4d_1_init stop
User=perforce
[Install]
WantedBy=multi-user.target
As root, copy your modified *service files to the /etc/systemd/system
directory.
As root, run commands like these samples, substituting the service name:
systemctl enable p4d_1
systemctl enable p4broker_1
Enabling the services will cause them to start after a reboot.
Verify that you can run the service. As either the root or perforce user, exercise the start, stop, and status commannds, such as:
systemctl status -l p4d_1
systemctl status -l p4broker_1
systemctl start p4d_1
systemctl start p4broker_1
systemctl status -l p4d_1
systemctl status -l p4broker_1
systemctl stop p4d_1
systemctl stop p4broker_1
systemctl status -l p4d_1
systemctl status -l p4broker_1
At this point your should be live in action.
These basic systemd service files are essentially just wrappers to SysV init scripts. The systemd system has additional features that may be considered later.
Sample systemd Configuration == Overview -- This directory contains sample systemd _service_ files to start and stop the Helix Server and Broker services using systemd rather than SysV init scripts. If you are using systemd (e.g. with CentOS 7.x), you do not need to add symlinks in `/etc/init.d`, and do not need to run the `chkconfig` commands as described in the **_SDP Guide_**. These instructions apply only after the `mkdirs.sh` script has been run for a given instance, as discussed in the **_SDP Guide_**. To use the sample \*.service files: 1. For each instance, create your own *p4d__N_.service* file, copying from *p4d_1.service*. Here _N_ is the instance name, e.g. '2' or 'acme'. If your instance has a broker, proxy, or other component that is to run on the current machine, create additional files as needed. See the *p4broker_1.service* file as an example. 2. Modify your \*.service files, changing the Description fields as desired, and setting the ExecStart and ExecStop fields to call appropriate script to start and stop the particular service. For example, *p4d_1.service* would look like this: ``` [Unit] Description=Helix Server Instance 1 Documentation=http://www.perforce.com/perforce/doc.current/manuals/p4sag/index.html Requires=network.target NetworkManager-wait-online.service After=network.target NetworkManager-wait-online.service [Service] Type=forking ExecStart=/p4/1/bin/p4d_1_init start ExecStop=/p4/1/bin/p4d_1_init stop User=perforce [Install] WantedBy=multi-user.target ``` 3. As **root**, copy your modified \*service files to the `/etc/systemd/system` directory. 4. As **root**, run commands like these samples, substituting the service name: ``` systemctl enable p4d_1 systemctl enable p4broker_1 ``` Enabling the services will cause them to start after a reboot. 5. Verify that you can run the service. As either the **root** or **perforce** user, exercise the start, stop, and status commannds, such as: ``` systemctl status -l p4d_1 systemctl status -l p4broker_1 systemctl start p4d_1 systemctl start p4broker_1 systemctl status -l p4d_1 systemctl status -l p4broker_1 systemctl stop p4d_1 systemctl stop p4broker_1 systemctl status -l p4d_1 systemctl status -l p4broker_1 ``` At this point your should be live in action. Just the Basics -- These basic _systemd_ service files are essentially just wrappers to SysV init scripts. The _systemd_ system has additional features that may be considered later.
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#3 | 25113 | Robert Cowham | Merge latest changes from dev | ||
#2 | 23430 | Robert Cowham | Merge in changes from dev | ||
#1 | 18586 | Robert Cowham | Branching using cowhamr.sdp.dev | ||
//guest/perforce_software/sdp/dev/Server/Unix/setup/systemd/README.md | |||||
#2 | 16563 | C. Thomas Tyler |
Routine Merge Down to dev from main using: p4 merge -b perforce_software-sdp-dev p4 resolve -as |
||
#1 | 15797 | C. Thomas Tyler | Routine Merge Down to dev from main for SDP. | ||
//guest/perforce_software/sdp/main/Server/Unix/setup/systemd/README.md | |||||
#1 | 15793 | C. Thomas Tyler |
Added sample systemd init scripts for the SDP for RHEL/CentOS 7 and other Linux distros that use systemd. Also updated README.md for firewalld. |