Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Systemd specify a config file Post 303045856 by calanon on Thursday 16th of April 2020 02:39:32 AM
Old 04-16-2020
Systemd specify a config file

I have this systemd unit file and my attempt was to convert the existing init.d script to a systemd unit file. I am having trouble declaring the config file that should be used as declared in the init.d script.

Here is the init.d script:
Code:
# The following variables can be overwritten in $DEFAULT
# maximum number of open files
MAX_OPEN_FILES=
# overwrite settings from default file
if [ -f "$DEFAULT" ]; then
      . "$DEFAULT"
fi
# set maximum open files if set
if [ -n "$MAX_OPEN_FILES" ]; then
    ulimit -n $MAX_OPEN_FILES
fi
get_user_shell() {
    local shell=$(getent passwd ${1:-`whoami`} | cut -d: -f7 | sed -e 's/[[:space:]]*$//')
    if [[ $shell == *"/sbin/nologin" ]] || [[ $shell == "/bin/false" ]] || [[ -z "$shell" ]];
    then
      shell="/bin/bash"
    fi
    echo "$shell"
}
super() {
    local shell=$(get_user_shell $USER)
    su - $USER -s $shell -c "PATH=$PATH; PM2_HOME=$PM2_HOME $*"
}
start() {
    echo "Starting $NAME"
    super $PM2 start --only="$PM2_APP_NAME" --env=production $PM2_CONFIG_FILE
}
stop() {
    super $PM2 stop --only="$PM2_APP_NAME" $PM2_CONFIG_FILE
    $PM2 kill
}
restart() {
    echo "Restarting $NAME"
    stop
    start
}
reload() {
    echo "Reloading $NAME"
    super $PM2 reload --only="$PM2_APP_NAME" $PM2_CONFIG_FILE
}
status() {
    echo "Status for $NAME:"
    super $PM2 list
    RETVAL=$?
}
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status
        ;;
    restart)
        restart
        ;;
    reload)
        reload
        ;;
    force-reload)
        reload
        ;;
    *)
        echo "Usage: {start|stop|status|restart|reload|force-reload}"
        exit 1
        ;;
esac
exit $RETVAL

And here is my attempt so far of the systemd unit file:

Code:
[Unit]
Description=app1
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=appuser
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/appuser/.pm2
PIDFile=/home/appuser/.pm2/pm2.pid
Restart=on-failure

ExecStart=/home/appuser/products/services/ash/releases/2.10.0/node_modules/pm2/bin/pm2  "-c /home/appuser/products/services/app1/current/ecosystem.config.js"
ExecReload=/home/appuser/products/services/ash/releases/2.10.0/node_modules/pm2/bin/pm2 reload all
ExecStop=/home/appuser/products/services/ash/releases/2.10.0/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

So far I cannot get this to work?

Last edited by calanon; 04-16-2020 at 04:51 AM..
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

parsing config file to create new config files

Hi, I want to use a config file as the base file and parse over the values of country and city parameters in the config file and generate separate config files as explained below. I will be using the config file as mentioned below: (config.txt) country:a,b city:1,2 type:b1... (1 Reply)
Discussion started by: clazzic
1 Replies

2. Shell Programming and Scripting

Shell script that will compare two config files and produce 2 outputs 1)actual config file 2)report

Hi I am new to shell scripting. There is a requirement to write a shell script to meet follwing needs.Prompt reply shall be highly appreciated. script that will compare two config files and produce 2 outputs - actual config file and a report indicating changes made. OS :Susi linux ver 10.3. ... (4 Replies)
Discussion started by: muraliinfy04
4 Replies

3. What is on Your Mind?

Linux systemd - Is it really required?

I was testing Fedora 16 mostly to check the new features. One thing that caught my eye as a systems admin is the systemd which is incorporated in Fedora for quite a while now. From the first look of it, this appears more close to Solaris's SMF. With parallelization capabilities, advanced... (0 Replies)
Discussion started by: admin_xor
0 Replies

4. UNIX for Advanced & Expert Users

Systemd

I am writing a program that must determine certain things about services. How can I, or my program, determine which services are started automatically when a given target becomes active. It is my impression that just looking in the target's .wants directory is inadequate because of other... (2 Replies)
Discussion started by: Brandon9000
2 Replies

5. Red Hat

Apache virtual host config vs global config problem

Hi folks, I am trying to configure Apache webserver and also a virtual host inside this webserver. For Global server config: /var/www/html/index.html For virtual host config: /var/www/virtual/index.html Both client10 & www10 are pointing to 192.168.122.10 IP address. BUT, MY... (1 Reply)
Discussion started by: freebird8z
1 Replies

6. UNIX for Advanced & Expert Users

Systemd

Hallo I don't know where to put my question so I put it here. I want that systemd let run a script but only on shutdown or reboot and before the system umount the mounted devices. I look on google but only a little information is found and not working Until no, I don't find an solution for... (1 Reply)
Discussion started by: thailand
1 Replies

7. SuSE

Starting mgetty with systemd?

Hello All, OS: openSUSE 13.1 (Bottle) (armv7hl) uname -a: Linux linux.site 3.14.14-cubox-i #1 SMP Sat Sep 13 03:48:24 UTC 2014 armv7l armv7l armv7l GNU/Linux So this is my first attempt at starting a service at boot with systemd. I've done this with inittab in the past, but I'm having... (0 Replies)
Discussion started by: mrm5102
0 Replies

8. Linux

CentOS7 systemd-timer

hi moring everyone, i has used systemd-timer running the task, i set every 5 second execute 1 times,but the systemd-timer don't by that also random times execute. what's reason. testest.timer configure ------------------------------------------------------------------------ ... (2 Replies)
Discussion started by: shean
2 Replies

9. Shell Programming and Scripting

Systemd errors of missing file “No such file or directory” inspite of file being present

The contents of my service file srvtemplate-data-i4-s1.conf is Description=test service for users After=network.target local-fs.target Type=forking RemainAfterExit=no PIDFile=/data/i4/srvt.pid LimitCORE=infinity EnvironmentFile=%I . . . WantedBy=multi-user.target (0 Replies)
Discussion started by: rupeshkp728
0 Replies
All times are GMT -4. The time now is 11:49 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy