Systemd specify a config file


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Systemd specify a config file
# 1  
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..
# 2  
Old 04-16-2020
What is the error you are getting when starting your service ?
Is there anything written in status or in the system logs ?

What operating system version is this ?

Regards
Peasant.
# 3  
Old 04-16-2020
I just edited the question and now it works. I added the "-c path/to/conf/file" switch

Last edited by RavinderSingh13; 04-16-2020 at 06:25 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

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

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

7. 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

8. 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

9. 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
Login or Register to Ask a Question

Featured Tech Videos