Thank you for the reply to my post.
The code had a type '&', which I did not intend to run in background :)
The ::system() call works (as I see in eclipse), the 'complete script path' did the trick, however, the DTNTRIGGER.exe does not work still work. I wonder, where I am going wrong.
Updated code:
---------------------
#include <csignal>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
//#include "/home/s116793/Dropbox/AmazingCode/ScriptTest/dtncode/ibrdtn-0.10.1/ibrdtn/data/Bundle.h"
#include <ibrdtn/data/Bundle.h>
#include <iostream>
using namespace std;
// std::string _appname = "trigger";
std::string _script = "/home/s116793/bashscript.sh";
std::string _shell = "/bin/sh";
int main() {
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
// call the script
std::string cmd = _shell + " " + _script + " " + "NodeA" + " " + "/home/s116793/something";
cout << "The cmd is:"<<cmd<<endl;
::system(cmd.c_str());;
return 0;
}
OUTPUT:
--------------
!!!Hello World!!!
The cmd is:/bin/sh /home/s116793/bashscript.sh NodeA /home/s116793/something
Hello guys..
Number of arguments 1 arguments
Argument list: ['/home/s116793/triggered.py']
Name of the file /home/s116793/text.txt
-------------------
I did try what you suggested, giving an app-name for the dtntrigger: the command at the receiver:
dtntrigger ubuntu-app /bin/sh /home/s116793/bashscript.sh
No file is created!
Another thing to notice:
--------------------------------
When I look into the cpp code also, we have set an app_name = "trigger" which is overwritten in the switch case.
ONE minor correction:
// print help if not enough parameters are set
This should be "optindex <= 2", forcing the user to enter three command line arguments. Entering two arguments with dtntrigger call, sets the _appname
and _shell and setting _script is left out.
--
Best Regards,
Shyam