问题描述
我写代码。我用gio编写C编程。它在服务器上启动并打印错误。 stackoverflow需要更多的单词,但无需编写任何内容。
static void set_server_dbus ( void ) {
unsigned int owner_id;
introspection_data = g_dbus_node_info_new_for_xml (introspection_xml,NULL);
owner_id = g_bus_own_name ( G_BUS_TYPE_SESSION,"com.xverizex.Trade_bot",G_BUS_NAME_OWNER_FLAGS_NONE,on_bus_acquired,on_name_acquired,on_name_lost,NULL,NULL );
}
...
int main ( int argc,char **argv ) {
init_buffers ( );
MysqL = MysqL_init ( NULL );
if ( MysqL_real_connect ( MysqL,"localhost","gag","binance",0 ) == NULL ) {
printf ( "не правильные данные для базы данных.\n" );
return -1;
}
set_server_dbus ( );
subscribe_to_net_device ( );
if ( power_net == 100 ) {
connect_to_network ( );
printf ( "!ok\n" );
}
GMainLoop *loop;
loop = g_main_loop_new ( NULL,FALSE );
g_main_loop_run ( loop );
return 0;
}
如果从终端启动,则可以,但是如果通过systemctl启动,则打印错误。
server@server:~$ systemctl status Trade_bot.service
● Trade_bot.service - Trade bot
Loaded: loaded (/lib/systemd/system/Trade_bot.service; enabled; vendor preset: enabled)
Active: Failed (Result: exit-code) since Mon 2020-10-12 23:22:32 UTC; 4min 49s ago
Process: 1511 ExecStart=/usr/local/bin/Trade_bot (code=exited,status=1/FAILURE)
Main PID: 1511 (code=exited,status=1/FAILURE)
Oct 12 23:22:32 server systemd[1]: Started Trade bot.
Oct 12 23:22:32 server Trade_bot[1511]: SUCCEED: Подключение к сетевому интерфейсу успешно.
Oct 12 23:22:32 server Trade_bot[1511]: SUCCEED: Получение сетевого интерфейса успешно.
Oct 12 23:22:32 server Trade_bot[1511]: SUCCEED: Успешное подключение к NetworkManager.Device.
Oct 12 23:22:32 server Trade_bot[1511]: !ok
Oct 12 23:22:32 server systemd[1]: Trade_bot.service: Main process exited,code=exited,status=1/FAILURE
Oct 12 23:22:32 server systemd[1]: Trade_bot.service: Failed with result 'exit-code'.
这是service_file。
[Unit]
Description=Trade bot
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/local/bin/Trade_bot
[Install]
WantedBy=multi-user.target
它叫做
static void
on_name_lost (GDBusConnection *connection,const gchar *name,gpointer user_data)
{
exit (1);
}
但是为什么呢? 如您所见,这是introspection_xml。这里的接口具有完整路径。
static const gchar introspection_xml[] =
"<node>"
" <interface name='com.xverizex.Trade_bot.status'>"
" <method name='stop_Trading'>"
" <arg type='u' name='status' direction='out'/>"
" </method>"
" <method name='start_Trading'>"
" <arg type='u' name='status' direction='out'/>"
" </method>"
" <property type='u' name='is_connected' access='read'/>"
" <signal name='connection_changed'>"
" <arg type='u' name='status'/>"
" </signal>"
" </interface>"
"</node>";
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)