vim /etc/systemd/system/informix.service
[Unit]
Description=Informix IDS
Documentation=file:/home/informix/release/en_us/0333 http://www.ibm.com/software/data/informix/library.html
OnFailure=notification-zabbix@%n.service
Wants=network-online.target
After=network.target network-online.target
[Service]
Type=forking
User=informix
Group=informix
#EnvironmentFile=/etc/profile.d/informix.sh
Environment="ENV_FILE=/etc/profile.d/informix.sh"
ExecStart=/bin/sh -a -c 'source $ENV_FILE && oninit -w -U $INFORMIXSERVER'
ExecStop=/bin/sh -a -c 'source $ENV_FILE && $INFORMIXDIR/bin/onmode -uky'
ExecStartPost=-/bin/sh -a -c 'source $ENV_FILE; if [ -f $INFORMIXDIR/autostart.sql ]; then $INFORMIXDIR/bin/dbaccess - $INFORMIXDIR/autostart.sql >>/tmp/autostart_${INFORMIXSERVER}.log 2>&1; fi'
ExecStartPost=-/bin/sh -a -c 'source $ENV_FILE; if [ -f $INFORMIXDIR/autostart.sql ]; then mv $INFORMIXDIR/autostart.sql $INFORMIXDIR/autostart_executed.sql; fi'
Restart=on-failure
RestartSec=60
#TimeoutStartSec=120
[Install]
WantedBy=multi-user.target
“Wants=network-online.target”行暗示 Informix HQ 服务应该等待网络在线启动。
“WorkingDirectory”行配置 systemd 在启动命令之前进入的文件夹。
行“ExecStart”。这里我们搞个小技巧。我们使用/bin/sh 的绝对路径来执行访问Java 的相对路径。
“用户=root”行。即使它应该是像informix这样的非root用户。在这个例子中我们使用root作为用户,允许将服务端口配置为80或443等特权端口。我保持默认的非特权端口8080,这里最好使用informix用户。
- 在 systemd 中创建 de 文件定义单元
- 执行“systemctl daemon-reload”
- 启动服务。EG systemctl start
informix.service
- 启用系统启动时启动的服务:systemctl enable
informix.service