Systemd service not behaving similar to manual ExecStart command run - service

I have pcieserver.service in systemd enabled which triggers /opt/pcieserver/pcieserver.sh script, and it seems to work fine.
One problem I am facing is, this server reads a socket using nc(netcat) and dumps the data to /tmp/temp file; if I run this script using sudo /opt/pcieserver/pcieserver.sh command, and then trigger the nc to dump data, the temp file is created and data is dumped as expected. If I trigger the nc when it is running from systemd service, it generates the file, but there is no data being dumped i.e. stays 0kb always.
systemd service file placed under /etc/systemd/system/pcieserver.service
contents:
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=PCIe-Server
After=network.target
[Service]
Type=simple
ExecStart=/opt/pcieserver/pcieserver.sh
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
pcieserver.sh contents:
# Getting Script Directory
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd ${SCRIPT_DIR}
/usr/bin/sudo python ${SCRIPT_DIR}/pcieserver.py
journalctl output:
pcieserver.startLocalTrace[26859]: startLocalTrace function...
pcieserver.sh[26851]: 2018-12-24 06:57:38,169 startLocalTrace function...
pcieserver.sh[26851]: 2018-12-24 06:57:38,170 Delete local Trace:/tmp/trace
pcieserver.deleteLocalTrace[26859]: Delete local Trace:/tmp/trace
pcieserver.sh[26851]: 2018-12-24 06:57:38,170 Tracefile /tmp/trace exists, delete...
pcieserver.deleteLocalTrace[26859]: Tracefile /tmp/trace exists, delete...
pcieserver.sh[26851]: 2018-12-24 06:57:38,170 Tracefile /tmp/trace exists, delete...done
pcieserver.sh[26851]: 2018-12-24 06:57:38,170 Start local Trace to file /tmp/trace...
pcieserver.deleteLocalTrace[26859]: Tracefile /tmp/trace exists, delete...done
pcieserver.sh[26851]: 2018-12-24 06:57:38,170 Start local Trace to file /tmp/trace. Command:nc 127.0.0.1 4705 >/tmp/trace
pcieserver.sh[26851]: 2018-12-24 06:57:38,170 Start process:nc 127.0.0.1 4705 >/tmp/trace
pcieserver.startLocalTrace[26859]: Start local Trace to file /tmp/trace...
pcieserver.startLocalTrace[26859]: Start local Trace to file /tmp/trace. Command:nc 127.0.0.1 4705 >/tmp/trace
pcieserver.startProcess[26859]: Start process:nc 127.0.0.1 4705 >/tmp/trace
pcieserver.startLocalTrace[26859]: Start local Trace to file /tmp/trace...started
pcieserver.sh[26851]: 2018-12-24 06:57:38,176 Start local Trace to file /tmp/trace...started
sudo[4121]: root : TTY=unknown ; PWD=/opt/pcieserver ; USER=root ; COMMAND=/bin/nc 127.0.0.1 4705
sudo[4121]: pam_unix(sudo:session): session opened for user root by (uid=0)
P.S. I checked the permissions are same in both cases.

Related

Postgreql wal archive keeps failing: archive command failed with exit code 1

I have a file that keeps failing to archive.
The failed archive command was: test ! -f /mnt/wal_archive/archivedir/00000001000003F000000072 && cp pg_wal/00000001000003F000000072 /mnt/wal_archive/archivedir/00000001000003F000000072
As instructed in other questions, I already manually deleted the file manually on the archivedir, and the file was copied again automatically, once that occurs, I start seeing the fail command again.
At the moment the file is in the pg_wal and in the archivedir. Once the file is in the archivedir shouldn't it be removed from from the pg_wal?
I'm a bit lost and out of ideas, any help would be appreciated. thanks
UPDATE:
This is all I get from the logs
DETAIL: The failed archive command was: test ! -f /mnt/wal_archive/archivedir/00000001000003F000000072 && cp pg_wal/00000001000003F000000072 /mnt/wal_archive/archivedir/00000001000003F000000072
Error
2022-05-12 09:54:29.207 CEST2022-05-12 07:54:29.206 UTC [18] LOG: archive command failed with exit code 1
Error
2022-05-12 09:54:29.207 CEST2022-05-12 07:54:29.206 UTC [18] DETAIL: The failed archive command was: test ! -f /mnt/wal_archive/archivedir/00000001000003F000000072 && cp pg_wal/00000001000003F000000072 /mnt/wal_archive/archivedir/00000001000003F000000072
Error
2022-05-12 09:54:29.207 CEST2022-05-12 07:54:29.207 UTC [18] WARNING: archiving write-ahead log file "00000001000003F000000072" failed too many times, will try again later
2nd Update:
Furthermore the wal_keep_segments and the max_wal_size settings are being ignored.

Cannot Install Postgresql 14 on my windows server 2019 - post install errors

I have PgAmin 4.6 running with PostgreSQL 12 on my windows 2019 server. I want to install postgreSQL 14. I have tried installing it using the latest EDB .exe file a few times: Each attempt I wind up with a post installation error. I've tried logged in as an administrator. I've adjusted the postgresql folder security privileges to allow 'all application packages', 'all restricted application packages', users in the administrator group and my own user account with full control... and I have even tried adding postgres as a local administrator account and installing from an elevated cmd-prompt. Any way I have sliced it - I continue to get the post-installation error. The installer finishes, but no postgresql 14 service installed, and the only folder in the postgreSQL 14 directory is Data.
What am I missing? What gives? Can I use pgAdmin to create a new postgresql 14 server? How do I initialize a postgreSQL 14 database? Wywould it matter if I already have pdAdmin 4.6 and postgreSQL 12 installed?I'd appreciate a little help. Many thanks!
Log started 01/21/2022 at 18:20:18
Preferred installation mode : qt
Trying to init installer in mode qt
Mode qt successfully initialized
Setting variable whoami from C:\WINDOWS\System32\whoami
Script exit code: 0
Script output:
dn\USER
Script stderr:
Executing C:\WINDOWS\System32\icacls "C:\Users\USER\AppData\Local\Temp/postgresql_installer_631f935164" /inheritance:r
Script exit code: 0
Script output:
processed file: C:\Users\USER\AppData\Local\Temp/postgresql_installer_631f935164
Successfully processed 1 files; Failed processing 0 files
Script stderr:
Executing C:\WINDOWS\System32\icacls "C:\Users\USER\AppData\Local\Temp/postgresql_installer_631f935164" /T /Q /grant "dn\USER:(OI)(CI)F"
Script exit code: 0
Script output:
Successfully processed 1 files; Failed processing 0 files
Script stderr:
Executing C:\WINDOWS\System32\cscript //NoLogo "C:\Users\USER\AppData\Local\Temp\postgresql_installer_631f935164\prerun_checks.vbs"
Script exit code: 0
Script output:
The scripting host appears to be functional.
Script stderr:
[18:20:30] Using branding: PostgreSQL 14
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-x64-14 SB_Version. Setting variable sb_version to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-x64-14 pgAdmin_Version. Setting variable pgadmin_version to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-x64-14 Data Directory. Setting variable server_data_dir to empty value
Executing C:\Users\USER\AppData\Local\Temp/postgresql_installer_631f935164/temp_check_comspec.bat
Script exit code: 0
Script output:
Active code page: 1252
Active code page: 1252
"test ok"
Script stderr:
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-x64-14 Data Directory. Setting variable iDataDirectory to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-x64-14 Service ID. Setting variable iServiceName to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-x64-14 Service Account. Setting variable iServiceAccount to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-x64-14 Super User. Setting variable iSuperuser to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-x64-14 DisableStackBuilder. Setting variable iDisableStackBuilder to empty value
[18:20:31] Existing base directory: C:\Program Files\PostgreSQL\14
[18:20:31] Existing data directory:
[18:20:31] Using branding: PostgreSQL 14
[18:20:31] Using Super User: postgres and Service Account: NT AUTHORITY\NetworkService
[18:20:31] Using Service Name: postgresql-x64-14
Executing C:\Users\USER\AppData\Local\Temp\postgresql_installer_631f935164\getlocales.exe
Script exit code: 0
Script output:
EnglishxxCOMMAxxxxSPxxAustralia=English, Australia
EnglishxxCOMMAxxxxSPxxBelize=English, Belize
EnglishxxCOMMAxxxxSPxxCanada=English, Canada
EnglishxxCOMMAxxxxSPxxCaribbean=English, Caribbean
EnglishxxCOMMAxxxxSPxxHongxxSPxxKongxxSPxxSAR=English, Hong Kong SAR
EnglishxxCOMMAxxxxSPxxIndia=English, India
EnglishxxCOMMAxxxxSPxxIndonesia=English, Indonesia
EnglishxxCOMMAxxxxSPxxIreland=English, Ireland
**_TRUNCATED_**
Script stderr:
[18:21:45] Data Directory exists and is empty. Removing it
Preparing to Install
Preparing to Install
Directory already exists: C:\Program Files\PostgreSQL\14\installer
Unpacking files
Unpacking C:\Program Files\PostgreSQL\14\installer\prerun_checks.vbs
Unpacking C:\Program Files\PostgreSQL\14\installer\vcredist_x86.exe
Directory already exists: C:\Program Files\PostgreSQL\14\installer
Unpacking files
Unpacking C:\Program Files\PostgreSQL\14\installer\vcredist_x64.exe
Directory already exists: C:\Program Files\PostgreSQL\14
Directory already exists: C:\Program Files\PostgreSQL\14\..._***TRUNCATED**
Unpacking files
Unpacking C:\Program Files\PostgreSQL\14\bin\pg_regress_ecpg.exe
Unpacking C:\Program Files\PostgreSQL\14\bin\..._***TRUNCATED UNPACK A BOATLOAD OF FILES FOR INSTALLATION***_
Directory already exists: C:\Program Files\PostgreSQL\14
Directory already exists: C:\Program Files\PostgreSQL\14\bin
Directory already exists: C:\Program Files\PostgreSQL\14\lib
Directory already exists: C:\Program Files\PostgreSQL\14\installer
Directory already exists: C:\Program Files\PostgreSQL\14\installer\server
Directory already exists: C:\Program Files\PostgreSQL\14\scripts
Directory already exists: C:\Program Files\PostgreSQL\14\scripts\images
Unpacking files
Unpacking C:\Program Files\PostgreSQL\14\lib\libecpg_compat.dll
...**TRUNCATED***
Unpacking C:\Program Files\PostgreSQL\14\installer\vcredist_x64.exe
Setting variable whoami from C:\WINDOWS\System32\whoami
Script exit code: 0
Script output:
dn\USER
Script stderr:
Executing C:\WINDOWS\System32\icacls "C:\Users\USER\AppData\Local\Temp/postgresql_installer_3f464cf94c" /inheritance:r
Script exit code: 0
Script output:
processed file: C:\Users\USER\AppData\Local\Temp/postgresql_installer_3f464cf94c
Successfully processed 1 files; Failed processing 0 files
Script stderr:
Executing C:\WINDOWS\System32\icacls "C:\Users\USER\AppData\Local\Temp/postgresql_installer_3f464cf94c" /T /Q /grant "dn\USER:(OI)(CI)F"
Script exit code: 0
Script output:
Successfully processed 1 files; Failed processing 0 files
Script stderr:
[18:24:34] Removing the existing ldconfig setting - set during the previous installation.
[18:24:34] Running the post-installation/upgrade actions:
[18:24:34] Write the base directory to the ini file...
[18:24:34] Write the version number to the ini file...
Initialising the database cluster (this may take a few minutes)...
Executing C:\WINDOWS\System32\cscript //NoLogo "C:\Program Files\PostgreSQL\14/installer/server/initcluster.vbs" "NT AUTHORITY\NetworkService" "postgres" "****" "C:\Users\USER\AppData\Local\Temp/postgresql_installer_3f464cf94c" "C:\Program Files\PostgreSQL\14" "D:\pgData14" 5433 "DEFAULT" 0
Script exit code: 1
Script output:
WScript.Shell Initialized...
Scripting.FileSystemObject initialized...
Called CreateDirectory(D:\pgData14)...
Called CreateDirectory(D:\)...
Called ClearAcl (D:\pgData14)...
Executing batch file 'radEA2DE.bat'...
D:\pgData14 DN\USER:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(F)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
BUILTIN\Users:(I)(CI)(S,WD)
BUILTIN\Users:(I)(CI)(S,AD)
BUILTIN\Users:(I)(OI)(CI)(RX)
Successfully processed 1 files; Failed processing 0 files
Removing inherited ACLs on (D:\pgData14)
Executing batch file 'radEA2DE.bat'...
processed file: D:\pgData14
Successfully processed 1 files; Failed processing 0 files
WScript.Network initialized...
strParentOfDataDirD:\
logged in userDN\USER
Called AclCheck(D:\pgData14)
Called IsVistaOrNewer()...
'winmgmts' object initialized...
Version:10.
MajorVersion:10
Executing icacls to ensure the DN\USER account can read the path D:\pgData14
Executing batch file 'radEA2DE.bat'...
processed file: D:\pgData14
Successfully processed 1 files; Failed processing 0 files
Called IsVistaOrNewer()...
'winmgmts' object initialized...
Version:10.
MajorVersion:10
Ensuring we can write to the data directory (using icacls) to DN\USER:
Executing batch file 'radEA2DE.bat'...
processed file: D:\pgData14
Successfully processed 1 files; Failed processing 0 files
Called IsVistaOrNewer()...
'winmgmts' object initialized...
Version:10.
MajorVersion:10
Granting full access to (NT AUTHORITY\NetworkService) on (D:\pgData14)
Executing batch file 'radEA2DE.bat'...
processed file: D:\pgData14
Successfully processed 1 files; Failed processing 0 files
Called IsVistaOrNewer()...
'winmgmts' object initialized...
Version:10.
MajorVersion:10
Granting full access to CREATOR OWNER on (D:\pgData14)
Executing batch file 'radEA2DE.bat'...
processed file: D:\pgData14
Successfully processed 1 files; Failed processing 0 files
Called IsVistaOrNewer()...
'winmgmts' object initialized...
Version:10.
MajorVersion:10
Granting full access to SYSTEM on (D:\pgData14)
Executing batch file 'radEA2DE.bat'...
processed file: D:\pgData14
Successfully processed 1 files; Failed processing 0 files
Called IsVistaOrNewer()...
'winmgmts' object initialized...
Version:10.
MajorVersion:10
Granting full access to Administrators on (D:\pgData14)
Executing batch file 'radEA2DE.bat'...
processed file: D:\pgData14
Successfully processed 1 files; Failed processing 0 files
Executing batch file 'radEA2DE.bat'...
initdb: error: The program "postgres" was found by "C:/Program Files/PostgreSQL/14/bin/initdb.exe"
but was not the same version as initdb.
Check your installation.
Called Die(Failed to initialise the database cluster with initdb)...
Failed to initialise the database cluster with initdb
Script stderr:
Program ended with an error exit code
Error running C:\WINDOWS\System32\cscript //NoLogo "C:\Program Files\PostgreSQL\14/installer/server/initcluster.vbs" "NT AUTHORITY\NetworkService" "postgres" "****" "C:\Users\USER\AppData\Local\Temp/postgresql_installer_3f464cf94c" "C:\Program Files\PostgreSQL\14" "D:\pgData14" 5433 "DEFAULT" 0: Program ended with an error exit code
Problem running post-install step. Installation may not complete correctly
The database cluster initialisation failed.
Setting variable whoami from C:\WINDOWS\System32\whoami
Script exit code: 0
Script output:
dn\USER
Script stderr:
Executing C:\WINDOWS\System32\icacls "C:\Users\USER\AppData\Local\Temp/postgresql_installer_4701618998" /inheritance:r
Script exit code: 0
Script output:
processed file: C:\Users\USER\AppData\Local\Temp/postgresql_installer_4701618998
Successfully processed 1 files; Failed processing 0 files
Script stderr:
Executing C:\WINDOWS\System32\icacls "C:\Users\USER\AppData\Local\Temp/postgresql_installer_4701618998" /T /Q /grant "dn\USER:(OI)(CI)F"
Uninstalling C:\Program Files\PostgreSQL\14\...**__TRUNCATED UNINSTALLED THE BOATLOAD THAT WAS INSTALLED__**
Uninstalling C:/Program Files/PostgreSQL/14/bin...
Skipping C:/Program Files/PostgreSQL/14
Uninstallation completed
Exiting with code 1
There seems to be some conflict between running as an underprivileged user and administrator. You have to run as an underprivileged user to create the database cluster and then an administrator to register the service. To get around this, first run initdb in some other directory, rather than the postgres data directory eg:
\apps\server\postgres\bin\initdb.exe -A md5 -Upostgres -Eutf8 -W -D"data" --no-locale
then you copy the data directory created to the postgres data dir specified in the failed install, and then register the service manually like:
pg_ctl -N postgres -D your_postgres_data_dir
Then you will be able to start/manage the postgres service in windows services as normal.

ActiveMQ Artemis stopping automatically. localhost is not loading

I have installed ActiveMQ Artemis on my office laptop. I created a broker, and from the broker's bin folder I ran artemis-exe install.
Then after that I ran the start command. It shows it has started but, when I check status it shows stopped. I cannot access localhost:8161. Here is my log file:
2020-09-07 12:30:45,458 DEBUG - Starting WinSW in the CLI mode
2020-09-07 12:30:46,033 INFO - Starting the service with id 'artemis-btBroker-0.0.0.0'
2020-09-07 12:30:46,737 DEBUG - Starting WinSW in the service mode
2020-09-07 12:30:46,837 DEBUG - Completed. Exit code is 0
2020-09-07 12:30:46,881 INFO - Starting %JAVA_HOME%\bin\java.exe -Xbootclasspath/a:C:\Users\613379463\Downloads\apache-artemis-2.15.0-bin\apache-artemis-2.15.0\lib\jboss-logmanager-2.1.10.Final.jar;C:\Users\613379463\Downloads\apache-artemis-2.15.0-bin\apache-artemis-2.15.0\lib\wildfly-common-1.5.2.Final.jar -XX:+UseParallelGC -Xms512M -Xmx1024M -classpath C:\Users\613379463\Downloads\apache-artemis-2.15.0-bin\apache-artemis-2.15.0\lib\artemis-boot.jar -Dartemis.home=C:\Users\613379463\Downloads\apache-artemis-2.15.0-bin\apache-artemis-2.15.0 -Dartemis.instance=C:\Users\613379463\Downloads\apache-artemis-2.15.0-bin\apache-artemis-2.15.0\bin\btBroker -Ddata.dir=C:\Users\613379463\Downloads\apache-artemis-2.15.0-bin\apache-artemis-2.15.0\bin\btBroker\data -Dartemis.instance.etc=C:\Users\613379463\Downloads\apache-artemis-2.15.0-bin\apache-artemis-2.15.0\bin\btBroker\etc -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Dlogging.configuration=file:/C:/Users/613379463/Downloads/apache-artemis-2.15.0-bin/apache-artemis-2.15.0/bin/btBroker/etc//logging.properties -Djava.security.auth.login.config=C:\Users\613379463\Downloads\apache-artemis-2.15.0-bin\apache-artemis-2.15.0\bin\btBroker\etc\login.config -Dhawtio.realm=activemq -Dhawtio.offline="true" -Dhawtio.role=amq -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Djolokia.policyLocation=file:/C:/Users/613379463/Downloads/apache-artemis-2.15.0-bin/apache-artemis-2.15.0/bin/btBroker/etc//jolokia-access.xml org.apache.activemq.artemis.boot.Artemis run
2020-09-07 12:30:47,081 DEBUG - Completed. Exit code is 0
The Artemis ActiveMQ service is known to start and immediately stop (without any errors shown on command line) if %JAVA_HOME% is not set, as Apurv Adarsh's comment mentions.
The solution is to set the env var and then run the service as normal, as follows:
(1) Set JAVA_HOME
Verify %JAVA_HOME% system environment variable exists:
echo $Env:JAVA_HOME # from PowerShell
echo %JAVA_HOME% # from cmd
# e.g. 'C:\Program Files\Java\jdk-10.0.2\'
# or blank if not set.
if not, find java.exe (download/install, if necessary):
> where.exe java.exe # from PowerShell
> where java.exe # from cmd
# C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe
# C:\Program Files\Java\jdk-10.0.2\bin\java.exe
Set JAVA_HOME env var, I'll choose the jdk-10.0.2 version. /M will set as system variable, instead of user var. btw, no need to include '/bin/java.exe'
> setx /M JAVA_HOME "C:\Program Files\Java\"
SUCCESS: Specified value was saved.
(Restart the prompt to load the newly set env variable.)
(2) Install & Start Artemis Windows Service
cd into Artemis ActiveMQ root directory. Let my_broker be the name of the broker instance already created.
Ensure service is installed, then start:
> "my_broker/bin/artemis-service" install
...
> "my_broker/bin/artemis-service" start
2021-01-01 12:00:00,000 INFO - Starting the service with id 'artemis-my_broker-0.0.0.0'
(3) Check Running Status:
Verify service status is running:
> "my_broker/bin/artemis-service" status
Started

Selinux - File Contexts Look Good, But Selinux Won't Allow Write

I am trying to learn Selinux. With a sandbox and using VSFTPD to experiment with, I have a vsfptd server running in Centos. I have annonmous users to place files in /var/ftp/incoming. On a remote machine I can have the user successfully log in but could not place the file on the remove vsftpd server:
$ftp mysql_server
Connected to mysql_server (192.168.1.31).
220 Welcome to blah FTP service.
Name (mysql_server:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer ftp> put atd
local: atd remote: atd
227 Entering Passive Mode (192,168,1,31,19,161).
553 Could not create file.
ftp>
On the VSFTPD server, aureport -a report shows:
[root#mysql_server ftp]# aureport -a
AVC Report
========================================================
# date time comm subj syscall class permission obj event
========================================================
4. 04/08/2013 13:30:36 vsftpd unconfined_u:system_r:ftpd_t:s0-s0:c0.c1023 21 dir write system_u:object_r:public_content_t:s0 denied 28
5. 04/08/2013 13:34:57 vsftpd unconfined_u:system_r:ftpd_t:s0-s0:c0.c1023 2 dir write system_u:object_r:public_content_t:s0 denied 47
I checked the directory and the file contexts look good, so I don't understand why Selinux won't allow vsftpd to write to the incoming directory:
[root#mysql_server ftp]# ls -Z
drwx-wx---. root ftp system_u:object_r:public_content_t:s0 incoming
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 pub
[root#mysql_server ftp]#
You need to run the following commands to allow in SELinux upload and edit files:
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
Your SELinux type is not correct. Use 'public_content_rw_t' instead of 'public_content_t'. Read more on http://beginlinux.com/blog/2008/11/vsftpd-and-selinux-on-centos/

supervisorctl ERROR (abnormal termination)

When I run sudo supervisorctl start stage then I get ERROR (abnormal termination). Will you please take look?
Here is my file /etc/supervisord.conf. Am i missing something? thanks
[unix_http_server]
file=/tmp/supervisor.sock ; (the path to the socket file)
[supervisord]
logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10 ; (num of main logfile rotation backups;default 10)
loglevel=info ; (log level;default info; others: debug,warn,trace)
pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false ; (start in foreground if true;default false)
minfds=1024 ; (min. avail startup file descriptors;default 1024)
minprocs=200 ; (min. avail process descriptors;default 200)
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
[program:stage]
command=/home/me/envs/project/bin/python /home/me/webapps/project/manage.py run_gunicorn -b 127.0.0.1:8002 --log-file=/tmp/stage_gunicorn.log
directory=/home/me/webapps/project/
user=www-data
autostart=true
autorestart=true
stdout_logfile=/tmp/stage_supervisord.log
redirect_stderr=true
I meet the same problem as yours. As Martijn Pieters saying, it doesn't mean that something goes wrong with your supervisorctl. It just tells you that the program didn't work. You can find some error details in the log.
It indicated error so find it using below command :
supervisorctl tail <APP_NAME>
This error is occurring due to the underlying stage application is not running properly. To fix the error, you can simply go to your console and run the command that you are passing. In your case:
It is
/home/me/envs/project/bin/python /home/me/webapps/project/manage.py run_gunicorn -b 127.0.0.1:8002 --log-file=/tmp/stage_gunicorn.log
It will show you the error that need to be fixed
It means that your APP is wrong.
Go and check [program:stage] section, path or something is not c
Just edit the log level to trace then restart supervisord and see what happened from the supervisor log.
[supervisord]
loglevel=trace
sudo systemctl restart supervisord.service
tail -f /path/to/supervisord.log
When the problem has been resolved, modify the loglevel to info.