Complete Raspberry Pi Base Setup first.
These instructions apply to both TransSECS Devices and TransSECS Servers.
The examples assume:
/home/mix/secs
If your login user is pi, the equivalent location is /home/pi/secs.
The deployment normally contains run.sh, one or more .jar files, log4j.xml, and ErgoTechConfiguration.properties.
Use SFTP or SCP rather than ordinary FTP. SSH/SFTP uses port 22 and does not require a separate FTP server on the Pi.
From a PC in the directory which contains the secs deployment folder:
scp -r secs [email protected]:/home/mix/
Replace the IP address with the Pi’s actual address.
sftp [email protected] put -r secs quit
WinSCP or FileZilla can also be used.
Choose:
| Setting | Value |
|---|---|
| Protocol | SFTP |
| Host | Pi IP address or mix.local |
| Port | 22 |
| User | mix |
| Password | ErgoErgo |
Copy the complete secs folder into /home/mix.
In the SSH session:
cd /home/mix/secs chmod +x run.sh ./run.sh
On the first start, TransSECS should report a prelicense key. Send this number to ErgoTech.
Press Ctrl+C to stop the application after recording the key.
If the message contains prelicense code: but no number, contact ErgoTech. The deployment may need to be rebuilt for the Raspberry Pi before it can be licensed.
For a serial connection, the Pi’s serial library is normally under /usr/lib/jni.
Edit:
nano run.sh
Set the library path to:
export LD_LIBRARY_PATH=./:../lib/:/usr/lib/jni
Save with Ctrl+O, Enter, Ctrl+X.
HSMS network connections do not require this change.
ErgoTech will provide:
ErgoIOTLicense.lic
Copy it into the TransSECS deployment folder:
scp ErgoIOTLicense.lic [email protected]:/home/mix/secs/
Run the deployment once more:
cd /home/mix/secs ./run.sh
It should start without the missing-license message.
Press Ctrl+C to stop it. The next step configures automatic startup.
Linux uses systemd to manage background services. Running TransSECS as a service means it starts automatically when the Pi boots and can restart automatically if the process stops.
It is also important to send Java console output to a dedicated TransSECS log. Otherwise Linux may copy repeated application messages into syslog or daemon.log, which can consume a large amount of SD-card space.
Create the log directory:
mkdir -p /home/mix/secs/logs
Create the service:
sudo nano /etc/systemd/system/transsecs.service
Paste:
[Unit] Description=TransSECS After=network-online.target Wants=network-online.target [Service] User=mix WorkingDirectory=/home/mix/secs ExecStart=/bin/sh /home/mix/secs/run.sh Restart=always RestartSec=10 StandardOutput=append:/home/mix/secs/logs/transsecs-console.log StandardError=append:/home/mix/secs/logs/transsecs-console.log [Install] WantedBy=multi-user.target
Save with Ctrl+O, Enter, Ctrl+X.
Tell systemd about the new service, enable it for future boots, and start it now:
sudo systemctl daemon-reload sudo systemctl enable transsecs sudo systemctl start transsecs sudo systemctl status transsecs
Look for:
active (running)
Press q to leave the status display.
Check the application console log:
tail -n 20 /home/mix/secs/logs/transsecs-console.log
You should see recent TransSECS startup messages.
If you use tail -f instead, the command deliberately stays open and shows new messages as they arrive. Press Ctrl+C to return to the command prompt.
Create:
sudo nano /etc/logrotate.d/transsecs-console
Paste:
/home/mix/secs/logs/transsecs-console.log {
size 5M
rotate 5
compress
delaycompress
missingok
notifempty
copytruncate
create 0644 mix mix
}
Save with Ctrl+O, Enter, Ctrl+X.
Check the configuration safely:
sudo logrotate -d /etc/logrotate.d/transsecs-console
The output should mention the TransSECS console log, a 5 MB threshold, and 5 rotations. There should be no error messages.
copytruncate allows logrotate to rotate the file without stopping TransSECS.
SECSMessages.log is already limited by the log4j.xml supplied with the deployment and does not need another logrotate rule.
sudo reboot
Reconnect after about a minute and run:
systemctl status transsecs tail -n 20 /home/mix/secs/logs/transsecs-console.log df -h / ls -lh /var/log
Verify:
active (running).syslog and daemon.log are remaining reasonably small.