Service management rework

pull/139/head
Ivan Yartsev 4 months ago
parent 3259712601
commit 2875b20e95

@ -1,5 +1,5 @@
Service_Name;Service_Description;Сommand_Start;Сommand_Stop;Сommand_Enable;Сommand_Disable;Сommand_Status
journald;System event log;systemctl start systemd-journald.service;systemctl stop systemd-journald.service;ubconfig set [system] SERVICES_DISABLE--=systemd-journald.service SERVICES_ENABLE++=systemd-journald.service;ubconfig set [system] SERVICES_ENABLE--=systemd-journald.service SERVICES_DISABLE++=systemd-journald.service;systemctl status systemd-journald.service
logrotate;System event log rotation service;systemctl start logrotate.timer;systemctl stop logrotate.timer logrotate.service;ubconfig set [system] SERVICES_DISABLE--=logrotate.timer SERVICES_ENABLE++=logrotate.timer;ubconfig set [system] SERVICES_ENABLE--=logrotate.timer SERVICES_DISABLE++=logrotate.timer;systemctl status logrotate.service
#metalog;System event log;systemctl start metalog.service;systemctl stop metalog.service;ubconfig set [system] SERVICES_DISABLE--=metalog.service SERVICES_ENABLE++=metalog.service;ubconfig set [system] SERVICES_ENABLE--=metalog.service SERVICES_DISABLE++=metalog.service;systemctl status metalog.service
#syslog-ng;Service for collecting messages from system events of active network devices;systemctl start syslog-ng.service;systemctl stop syslog-ng.service;ubconfig set [system] SERVICES_DISABLE--=syslog-ng.service SERVICES_ENABLE++=syslog-ng.service;ubconfig set [system] SERVICES_ENABLE--=syslog-ng.service SERVICES_DISABLE++=syslog-ng.service;systemctl status syslog-ng.service
Service_Name;Service_Description;Сommand_Start;Сommand_Stop;Сommand_Enable;Сommand_Disable;Сommand_Status;Сommand_Status_Active;Сommand_Status_Enabled
journald;System event log;systemctl start systemd-journald.service;systemctl stop systemd-journald.service;ubconfig set [system] SERVICES_DISABLE--=systemd-journald.service SERVICES_ENABLE++=systemd-journald.service;ubconfig set [system] SERVICES_ENABLE--=systemd-journald.service SERVICES_DISABLE++=systemd-journald.service;systemctl status systemd-journald.service --no-pager;systemctl --quiet is-active systemd-journald.service;systemctl --quiet is-enabled systemd-journald.service
logrotate;System event log rotation service;systemctl start logrotate.timer;systemctl stop logrotate.timer logrotate.service;ubconfig set [system] SERVICES_DISABLE--=logrotate.timer SERVICES_ENABLE++=logrotate.timer;ubconfig set [system] SERVICES_ENABLE--=logrotate.timer SERVICES_DISABLE++=logrotate.timer;systemctl status logrotate.service --no-pager;systemctl --quiet is-active logrotate.service;systemctl --quiet is-enabled logrotate.service
#metalog;System event log;systemctl start metalog.service;systemctl stop metalog.service;ubconfig set [system] SERVICES_DISABLE--=metalog.service SERVICES_ENABLE++=metalog.service;ubconfig set [system] SERVICES_ENABLE--=metalog.service SERVICES_DISABLE++=metalog.service;systemctl status metalog.service --no-pager;systemctl --quiet is-active metalog.service;systemctl --quiet is-enabled metalog.service
#syslog-ng;Service for collecting messages from system events of active network devices;systemctl start syslog-ng.service;systemctl stop syslog-ng.service;ubconfig set [system] SERVICES_DISABLE--=syslog-ng.service SERVICES_ENABLE++=syslog-ng.service;ubconfig set [system] SERVICES_ENABLE--=syslog-ng.service SERVICES_DISABLE++=syslog-ng.service;systemctl status syslog-ng.service --no-pager;systemctl --quiet is-active syslog-ng.service;systemctl --quiet is-enabled syslog-ng.service
1 Service_Name Service_Description Сommand_Start Сommand_Stop Сommand_Enable Сommand_Disable Сommand_Status Сommand_Status_Active Сommand_Status_Enabled
2 journald System event log systemctl start systemd-journald.service systemctl stop systemd-journald.service ubconfig set [system] SERVICES_DISABLE--=systemd-journald.service SERVICES_ENABLE++=systemd-journald.service ubconfig set [system] SERVICES_ENABLE--=systemd-journald.service SERVICES_DISABLE++=systemd-journald.service systemctl status systemd-journald.service systemctl status systemd-journald.service --no-pager systemctl --quiet is-active systemd-journald.service systemctl --quiet is-enabled systemd-journald.service
3 logrotate System event log rotation service systemctl start logrotate.timer systemctl stop logrotate.timer logrotate.service ubconfig set [system] SERVICES_DISABLE--=logrotate.timer SERVICES_ENABLE++=logrotate.timer ubconfig set [system] SERVICES_ENABLE--=logrotate.timer SERVICES_DISABLE++=logrotate.timer systemctl status logrotate.service systemctl status logrotate.service --no-pager systemctl --quiet is-active logrotate.service systemctl --quiet is-enabled logrotate.service
4 #metalog System event log systemctl start metalog.service systemctl stop metalog.service ubconfig set [system] SERVICES_DISABLE--=metalog.service SERVICES_ENABLE++=metalog.service ubconfig set [system] SERVICES_ENABLE--=metalog.service SERVICES_DISABLE++=metalog.service systemctl status metalog.service systemctl status metalog.service --no-pager systemctl --quiet is-active metalog.service systemctl --quiet is-enabled metalog.service
5 #syslog-ng Service for collecting messages from system events of active network devices systemctl start syslog-ng.service systemctl stop syslog-ng.service ubconfig set [system] SERVICES_DISABLE--=syslog-ng.service SERVICES_ENABLE++=syslog-ng.service ubconfig set [system] SERVICES_ENABLE--=syslog-ng.service SERVICES_DISABLE++=syslog-ng.service systemctl status syslog-ng.service systemctl status syslog-ng.service --no-pager systemctl --quiet is-active syslog-ng.service systemctl --quiet is-enabled syslog-ng.service

@ -2764,6 +2764,7 @@ void on_main_window_services_tree_selection_changed(GtkWidget *,main_window *wid
GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ServicesTree)),&model,&iter)){
gtk_widget_set_sensitive(widgets->ServicesControlButton,1);
gboolean is_active;
gboolean is_enabled;
char *name;
@ -2771,67 +2772,53 @@ void on_main_window_services_tree_selection_changed(GtkWidget *,main_window *wid
gtk_tree_model_get(model,&iter,0,&is_active,1,&is_enabled,2,&name,-1);
if (is_active){
gtk_widget_set_sensitive(widgets->ServicesEditButton,1);
gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,1);
gtk_widget_set_sensitive(widgets->ServicesStartStopButton,1);
gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),1);
// gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),1);
gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),1);
gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_OFF_LABEL);
gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,STOP_SERVICE_LABEL);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesStartStopButton))),stop_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),stop_icon_name,GTK_ICON_SIZE_BUTTON);
GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,0)));
GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0)));
gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),stop_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),STOP_SERVICE_LABEL);
g_list_free(item);
g_list_free(items);
} else {
gtk_widget_set_sensitive(widgets->ServicesEditButton,0);
gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,1);
gtk_widget_set_sensitive(widgets->ServicesStartStopButton,1);
gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),1);
gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),1);
gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_ON_LABEL);
gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,START_SERVICE_LABEL);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesStartStopButton))),start_icon_name,GTK_ICON_SIZE_BUTTON);
// gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),1);
gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),0);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),start_icon_name,GTK_ICON_SIZE_BUTTON);
GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,0)));
GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0)));
gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),start_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),START_SERVICE_LABEL);
g_list_free(item);
g_list_free(items);
}
if (is_enabled){
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesEnableDisableButton))),disable_icon_name,GTK_ICON_SIZE_BUTTON);
GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,1)));
GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0)));
gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),disable_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),AUTOSTART_OFF_LABEL);
g_list_free(item);
g_list_free(items);
} else {
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesEnableDisableButton))),enable_icon_name,GTK_ICON_SIZE_BUTTON);
GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,1)));
GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0)));
gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),enable_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),AUTOSTART_ON_LABEL);
g_list_free(item);
g_list_free(items);
}
// if (is_enabled){
// gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),disable_icon_name,GTK_ICON_SIZE_BUTTON);
// GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,1)));
// GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0)));
// gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),disable_icon_name,GTK_ICON_SIZE_BUTTON);
// gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),AUTOSTART_OFF_LABEL);
// g_list_free(item);
// g_list_free(items);
// } else {
// gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),enable_icon_name,GTK_ICON_SIZE_BUTTON);
// GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,1)));
// GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0)));
// gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),enable_icon_name,GTK_ICON_SIZE_BUTTON);
// gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),AUTOSTART_ON_LABEL);
// g_list_free(item);
// g_list_free(items);
// }
if (!strcmp(name,"journald")){
gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),0);
gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),0);
gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,0);
gtk_widget_set_sensitive(widgets->ServicesStartStopButton,0);
gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_OFF_LABEL);
gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,STOP_SERVICE_LABEL);
// gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),0);
// gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),0);
// gtk_widget_set_sensitive(widgets->ServicesControlButton,0);
// gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_OFF_LABEL);
}
g_list_free(list);
} else {
gtk_widget_set_sensitive(widgets->ServicesEditButton,0);
gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,0);
gtk_widget_set_sensitive(widgets->ServicesStartStopButton,0);
gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_ON_LABEL);
gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,START_SERVICE_LABEL);
gtk_widget_set_sensitive(widgets->ServicesControlButton,0);
// gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_ON_LABEL);
}
}
@ -2848,15 +2835,11 @@ void on_start_stop_clicked(GtkButton *, main_window *widgets){
if (is_started){
g_spawn_command_line_sync(yon_debug_output("%s\n",stop_command),NULL,NULL,NULL,NULL);
gtk_list_store_set(widgets->ServicesList,&iter,0,0,-1);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesStartStopButton))),start_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),start_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,START_SERVICE_LABEL);
} else {
g_spawn_command_line_sync(yon_debug_output("%s\n",start_command),NULL,NULL,NULL,NULL);
gtk_list_store_set(widgets->ServicesList,&iter,0,1,-1);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesStartStopButton))),stop_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),stop_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,STOP_SERVICE_LABEL);
}
}
}
@ -2882,9 +2865,9 @@ void on_enable_disable_clicked(GtkButton *, main_window *widgets){
if (is_started){
yon_launch(stop_command);
gtk_list_store_set(widgets->ServicesList,&iter,1,0,-1);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesEnableDisableButton))),enable_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),enable_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_ON_LABEL);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),start_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),start_icon_name,GTK_ICON_SIZE_BUTTON);
// gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_ON_LABEL);
} else {
/*
g_mutex_lock(&main_config.authorized_mutex);
@ -2894,9 +2877,9 @@ void on_enable_disable_clicked(GtkButton *, main_window *widgets){
g_mutex_unlock(&main_config.authorized_mutex);*/
yon_launch(start_command);
gtk_list_store_set(widgets->ServicesList,&iter,1,1,-1);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesEnableDisableButton))),disable_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),disable_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_OFF_LABEL);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),stop_icon_name,GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),stop_icon_name,GTK_ICON_SIZE_BUTTON);
// gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_OFF_LABEL);
}
}
}
@ -2994,6 +2977,27 @@ void config_init(){
}
}
void on_service_manage(GtkWidget *,main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->ServicesList);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ServicesTree)),&model,&iter)){
char *name,*start_command,*stop_command,*enable_command,*disable_command,*status_command,*check_active_command,*check_enable_command;
gtk_tree_model_get(model,&iter,
2,&name,5,&start_command,
6,&stop_command,7,&enable_command,
8,&disable_command,9,&status_command,
10,&check_active_command,11,&check_enable_command,
-1);
service_window *window = yon_service_window_new(name,start_command,stop_command,
enable_command,disable_command,
status_command,check_active_command,
check_enable_command);
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window));
yon_service_window_run(window);
}
}
void yon_main_window_complete(template_main_window **window){
/* Widgets getting | Получение виджетов */
main_window *widgets = realloc(*window,sizeof(main_window));
@ -3008,8 +3012,7 @@ void yon_main_window_complete(template_main_window **window){
widgets->RemoveButton = yon_gtk_builder_get_widget(builder,"MainRemoveButton");
widgets->Notebook = yon_gtk_builder_get_widget(builder,"MainNotebook");
widgets->ServicesEditButton = yon_gtk_builder_get_widget(builder,"ServicesEditButton");
widgets->ServicesStartStopButton = yon_gtk_builder_get_widget(builder,"ServicesStartStopButton");
widgets->ServicesEnableDisableButton = yon_gtk_builder_get_widget(builder,"ServicesEnableDisableButton");
widgets->ServicesControlButton = yon_gtk_builder_get_widget(builder,"ServicesControlButton");
widgets->ServicesTree = yon_gtk_builder_get_widget(builder,"ServicesTree");
widgets->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
widgets->ServicesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"ServicesList"));
@ -3059,8 +3062,11 @@ void yon_main_window_complete(template_main_window **window){
int log_size;
services[i]=yon_char_divide_search(services[i],"\n",-1);
config_str log = yon_char_parse(services[i],&log_size,";");
int is_active, is_enabled;
is_active = !system(log[7]);
is_enabled = !system(log[8]);
gtk_list_store_append(widgets->ServicesList,&iter);
gtk_list_store_set(widgets->ServicesList,&iter,0,1,1,1,2,log[0],3,_(log[1]),4,log[2],5,log[3],6,log[4],7,log[5],8,log[6],-1);
gtk_list_store_set(widgets->ServicesList,&iter,0,is_active,1,is_enabled,2,log[0],3,_(log[1]),4,log[2],5,log[2],6,log[3],7,log[4],8,log[5],9,log[6],10,log[7],11,log[8],-1);
}
}
config_str dirs = yon_config_load(logrotate_config_command,&dirs_size);
@ -3176,17 +3182,16 @@ void yon_main_window_complete(template_main_window **window){
g_signal_connect(G_OBJECT(widgets->MainTree),"cursor-changed",G_CALLBACK(on_main_window_tree_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->ServicesTree),"cursor-changed",G_CALLBACK(on_main_window_services_tree_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->ServicesStartStopButton),"clicked",G_CALLBACK(on_start_stop_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->ServicesEnableDisableButton),"clicked",G_CALLBACK(on_enable_disable_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->ServicesControlButton),"clicked",G_CALLBACK(on_service_manage),widgets);
widgets->LogsRMBMenu = yon_rmb_menu_setup(widgets->MainTree,(RmbCheck)gtk_widget_get_sensitive,widgets->MainTree,
CONFIGURE_LOG_LABEL,settings_icon_name,G_CALLBACK(on_log_edit),widgets,
CONFIGURE_LOG_LABEL,settings_icon_name,G_CALLBACK(on_log_edit),widgets,
ADD_LOG_LABEL,add_icon_name,G_CALLBACK(on_log_add),widgets,
REMOVE_LOG_LABEL,remove_icon_name,G_CALLBACK(on_log_remove),widgets,
NULL);
widgets->ServicesRMBMenu = yon_rmb_menu_setup(widgets->ServicesTree,(RmbCheck)gtk_widget_get_sensitive,widgets->ServicesTree,
START_SERVICE_LABEL,start_icon_name,G_CALLBACK(on_start_stop_clicked),widgets,
AUTOSTART_ON_LABEL,enable_icon_name,G_CALLBACK(on_enable_disable_clicked),widgets,
SERVICE_MANAGEMENT_TOOLTIP,start_icon_name,G_CALLBACK(on_service_manage),widgets,
CONFIGURE_SERVICE_LABEL,settings_icon_name,G_CALLBACK(on_service_edit),widgets,
NULL);
// yon_rmb_menu_setup(widgets->ServicesTree,(RmbCheck)gtk_widget_get_sensitive,widgets->MainTree,CONFIGURE_LOG_LABEL,edit_icon_name,G_CALLBACK(on_log_edit),widgets,ADD_LOG_LABEL,add_icon_name,G_CALLBACK(on_log_add),widgets,REMOVE_LOG_LABEL,remove_icon_name,G_CALLBACK(on_log_remove),widgets,NULL);

@ -144,8 +144,7 @@ typedef struct {
GtkWidget *Notebook;
GtkWidget *ServicesTree;
GtkWidget *ServicesEditButton;
GtkWidget *ServicesStartStopButton;
GtkWidget *ServicesEnableDisableButton;
GtkWidget *ServicesControlButton;
GtkListStore *list;
GtkListStore *ServicesList;
GtkWidget *UpgradePermissionsMenuItem;
@ -460,4 +459,5 @@ void on_logrotate_apps_configure_activate(GtkWidget *, GtkTreePath*, GtkTreeView
void on_logrotate_edit_activate(GtkWidget*,GtkTreePath*,GtkTreeViewColumn*, logrotate_window *window);
void on_logrotate_closed(GtkWidget *,logrotate_window *window);
void on_rules_changed(GtkEditable *editable, const gchar *text, gint length, gint *position);
void on_service_manage(GtkWidget *,main_window *widgets);
int main(int argc, char *argv[]);

@ -44,6 +44,7 @@
#define XORG_DESCRIPTION_LABEL _("X.org display server log")
#define XSESSION_DESCRIPTION_LABEL _("Graphics X session log")
#define SAVE_LABEL _("Save")
#define SERVICE_MANAGEMENT_TOOLTIP _("Manage service")
//ubl-settings-logging-inspector.glade
#define INSPECTOR_TITLE_LABEL(target) yon_char_unite(_("Inspect")," ",target,NULL)

@ -47,9 +47,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<column type="gchararray"/>
<!-- column-name StopCommand -->
<column type="gchararray"/>
<!-- column-name LaunchCommand -->
<!-- column-name EnableCommand -->
<column type="gchararray"/>
<!-- column-name PauseCommand -->
<!-- column-name DisableCommand -->
<column type="gchararray"/>
<!-- column-name StatusCommand -->
<column type="gchararray"/>
<!-- column-name CheckActiveCommand -->
<column type="gchararray"/>
<!-- column-name CheckEnableComand -->
<column type="gchararray"/>
</columns>
</object>
@ -77,15 +83,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.trash-symbolic</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.play-symbolic</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.check-symbolic</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.play-symbolic</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
@ -229,6 +230,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">True</property>
<property name="model">liststore1</property>
<property name="tooltip-column">2</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
@ -320,30 +324,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkButton" id="ServicesStartStopButton">
<object class="GtkButton" id="ServicesControlButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Start service</property>
<property name="image">image5</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ServicesEnableDisableButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Switch autostart on</property>
<property name="tooltip-text" translatable="yes">Manage service</property>
<property name="image">image6</property>
<style>
<class name="thin"/>
@ -390,6 +376,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">ServicesList</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">fixed</property>

@ -73,7 +73,7 @@ msgstr ""
msgid "Inspect log"
msgstr ""
#: source/ubl-strings.h:22 source/ubl-strings.h:187
#: source/ubl-strings.h:22 source/ubl-strings.h:188
msgid "Configure log"
msgstr ""
@ -173,608 +173,612 @@ msgstr ""
msgid "Save"
msgstr ""
#: source/ubl-strings.h:49
msgid "Inspect"
#: source/ubl-strings.h:47
msgid "Manage service"
msgstr ""
#: source/ubl-strings.h:50
msgid "Show messages since the current system boot"
msgid "Inspect"
msgstr ""
#: source/ubl-strings.h:51
msgid "Follow for new messages"
msgid "Show messages since the current system boot"
msgstr ""
#: source/ubl-strings.h:52
msgid "Show kernel ring buffer"
msgid "Follow for new messages"
msgstr ""
#: source/ubl-strings.h:53
msgid "Show only priority error messages, critical messages and warnings"
msgid "Show kernel ring buffer"
msgstr ""
#: source/ubl-strings.h:54
msgid "Show all boots"
msgid "Show only priority error messages, critical messages and warnings"
msgstr ""
#: source/ubl-strings.h:55
msgid "Show a list of all units, ordered by the time of their initialisation"
msgid "Show all boots"
msgstr ""
#: source/ubl-strings.h:56
msgid "Show tree of time-critical initialization unit chain"
msgid "Show a list of all units, ordered by the time of their initialisation"
msgstr ""
#: source/ubl-strings.h:57
msgid "Update"
msgid "Show tree of time-critical initialization unit chain"
msgstr ""
#: source/ubl-strings.h:58
msgid "Date"
msgid "Update"
msgstr ""
#: source/ubl-strings.h:59
msgid "Hostname"
msgid "Date"
msgstr ""
#: source/ubl-strings.h:60
msgid "Process"
msgid "Hostname"
msgstr ""
#: source/ubl-strings.h:61
msgid "Process"
msgstr ""
#: source/ubl-strings.h:62
msgid "Log"
msgstr ""
#: source/ubl-strings.h:64
#: source/ubl-strings.h:65
msgid "Logs and events - journald configuration"
msgstr ""
#: source/ubl-strings.h:65
#: source/ubl-strings.h:66
msgid "Description:"
msgstr ""
#: source/ubl-strings.h:66
#: source/ubl-strings.h:67
msgid "Journal storage place:"
msgstr ""
#: source/ubl-strings.h:67 source/ubl-strings.h:68
#: source/ubl-strings.h:68 source/ubl-strings.h:69
msgid "Use compression:"
msgstr ""
#: source/ubl-strings.h:69
#: source/ubl-strings.h:70
msgid "Split journal files:"
msgstr ""
#: source/ubl-strings.h:70
#: source/ubl-strings.h:71
msgid "Log recording journal interval:"
msgstr ""
#: source/ubl-strings.h:71
#: source/ubl-strings.h:72
msgid "Records amount:"
msgstr ""
#: source/ubl-strings.h:72
#: source/ubl-strings.h:73
msgid "Maximum size of all logs:"
msgstr ""
#: source/ubl-strings.h:73
#: source/ubl-strings.h:74
msgid "Maximum size of rotation journal:"
msgstr ""
#: source/ubl-strings.h:74
#: source/ubl-strings.h:75
msgid "Leave free space at storage:"
msgstr ""
#: source/ubl-strings.h:75
#: source/ubl-strings.h:76
msgid "Redirect to console:"
msgstr ""
#: source/ubl-strings.h:76
#: source/ubl-strings.h:77
msgid "TTY:"
msgstr ""
#: source/ubl-strings.h:77
#: source/ubl-strings.h:78
msgid "Type of forwarded messages:"
msgstr ""
#: source/ubl-strings.h:78
#: source/ubl-strings.h:79
msgid "Journal configuration"
msgstr ""
#: source/ubl-strings.h:79
#: source/ubl-strings.h:80
msgid "Total log size:"
msgstr ""
#: source/ubl-strings.h:80
#: source/ubl-strings.h:81
msgid "Lower size to:"
msgstr ""
#: source/ubl-strings.h:81
#: source/ubl-strings.h:82
msgid "Apply"
msgstr ""
#: source/ubl-strings.h:82
#: source/ubl-strings.h:83
msgid "Statistics"
msgstr ""
#: source/ubl-strings.h:83
#: source/ubl-strings.h:84
msgid "Default"
msgstr ""
#: source/ubl-strings.h:84
#: source/ubl-strings.h:85
msgid "RAM"
msgstr ""
#: source/ubl-strings.h:85
#: source/ubl-strings.h:86
msgid "Drive"
msgstr ""
#: source/ubl-strings.h:86
#: source/ubl-strings.h:87
msgid "Auto"
msgstr ""
#: source/ubl-strings.h:87
#: source/ubl-strings.h:88
msgid "None"
msgstr ""
#: source/ubl-strings.h:88
#: source/ubl-strings.h:89
msgid "Yes"
msgstr ""
#: source/ubl-strings.h:89
#: source/ubl-strings.h:90
msgid "No"
msgstr ""
#: source/ubl-strings.h:90
#: source/ubl-strings.h:91
msgid "After"
msgstr ""
#: source/ubl-strings.h:91
#: source/ubl-strings.h:92
msgid "Kb"
msgstr ""
#: source/ubl-strings.h:92
#: source/ubl-strings.h:93
msgid "Mb"
msgstr ""
#: source/ubl-strings.h:93
#: source/ubl-strings.h:94
msgid "Gb"
msgstr ""
#: source/ubl-strings.h:94
#: source/ubl-strings.h:95
msgid "Minutes"
msgstr ""
#: source/ubl-strings.h:95
#: source/ubl-strings.h:96
msgid "Hours"
msgstr ""
#: source/ubl-strings.h:96
#: source/ubl-strings.h:97
msgid "Days"
msgstr ""
#: source/ubl-strings.h:97
#: source/ubl-strings.h:98
msgid "Weeks"
msgstr ""
#: source/ubl-strings.h:98
#: source/ubl-strings.h:99
msgid "Years"
msgstr ""
#: source/ubl-strings.h:99
#: source/ubl-strings.h:100
msgid "Reset"
msgstr ""
#: source/ubl-strings.h:102
#: source/ubl-strings.h:103
msgid "Logs and events - logrotate configuration"
msgstr ""
#: source/ubl-strings.h:103
#: source/ubl-strings.h:104
msgid "Log/Journal:"
msgstr ""
#: source/ubl-strings.h:104
#: source/ubl-strings.h:105
msgid "Paths to log and journals files"
msgstr ""
#: source/ubl-strings.h:105
#: source/ubl-strings.h:106
msgid "On"
msgstr ""
#: source/ubl-strings.h:106
#: source/ubl-strings.h:107
msgid "Off"
msgstr ""
#: source/ubl-strings.h:107 source/ubl-strings.h:161
#: source/ubl-strings.h:108 source/ubl-strings.h:162
msgid "Scenarios"
msgstr ""
#: source/ubl-strings.h:108 source/ubl-strings.h:160
#: source/ubl-strings.h:109 source/ubl-strings.h:161
msgid "Scenarios are running for each rotated journal"
msgstr ""
#: source/ubl-strings.h:109
#: source/ubl-strings.h:110
msgid "Command before rotation (one time):"
msgstr ""
#: source/ubl-strings.h:110
#: source/ubl-strings.h:111
msgid "Command after rotation (one time):"
msgstr ""
#: source/ubl-strings.h:111
#: source/ubl-strings.h:112
msgid "Command before rotation:"
msgstr ""
#: source/ubl-strings.h:112
#: source/ubl-strings.h:113
msgid "Command after rotation:"
msgstr ""
#: source/ubl-strings.h:113
#: source/ubl-strings.h:114
msgid "Rotation period:"
msgstr ""
#: source/ubl-strings.h:114
#: source/ubl-strings.h:115
msgid "Maximum size of file:"
msgstr ""
#: source/ubl-strings.h:115
#: source/ubl-strings.h:116
msgid "Checking frequency configuration"
msgstr ""
#: source/ubl-strings.h:116
#: source/ubl-strings.h:117
msgid "File amount:"
msgstr ""
#: source/ubl-strings.h:117
#: source/ubl-strings.h:118
msgid "Store at:"
msgstr ""
#: source/ubl-strings.h:118
#: source/ubl-strings.h:119
msgid "Rotation as user:"
msgstr ""
#: source/ubl-strings.h:119
#: source/ubl-strings.h:120
msgid "Rotation as group:"
msgstr ""
#: source/ubl-strings.h:120
#: source/ubl-strings.h:121
msgid "Rotation configuration"
msgstr ""
#: source/ubl-strings.h:121
#: source/ubl-strings.h:122
msgid "Error processing:"
msgstr ""
#: source/ubl-strings.h:122
#: source/ubl-strings.h:123
msgid "Rotation of jurnal even when it is empty:"
msgstr ""
#: source/ubl-strings.h:123
#: source/ubl-strings.h:124
msgid "Do not rotate journal younger than"
msgstr ""
#: source/ubl-strings.h:124
#: source/ubl-strings.h:125
msgid "days"
msgstr ""
#: source/ubl-strings.h:125
#: source/ubl-strings.h:126
msgid "Delete rotated journals older than"
msgstr ""
#: source/ubl-strings.h:126
#: source/ubl-strings.h:127
msgid "Rotate journals if size more than"
msgstr ""
#: source/ubl-strings.h:127
#: source/ubl-strings.h:128
msgid "but not earlier than the specified time interval"
msgstr ""
#: source/ubl-strings.h:128
#: source/ubl-strings.h:129
msgid "before specified time interval"
msgstr ""
#: source/ubl-strings.h:129
#: source/ubl-strings.h:130
msgid "File choosing configuration"
msgstr ""
#: source/ubl-strings.h:130
#: source/ubl-strings.h:131
msgid "Create log"
msgstr ""
#: source/ubl-strings.h:131
#: source/ubl-strings.h:132
msgid "as user:"
msgstr ""
#: source/ubl-strings.h:132
#: source/ubl-strings.h:133
msgid "as group:"
msgstr ""
#: source/ubl-strings.h:133
#: source/ubl-strings.h:134
msgid "rules:"
msgstr ""
#: source/ubl-strings.h:134
#: source/ubl-strings.h:135
msgid ""
"Cut source journal fileafter copy creating instead of moving old journal "
"file and creating new one"
msgstr ""
#: source/ubl-strings.h:135
#: source/ubl-strings.h:136
msgid "Files and directories configuration"
msgstr ""
#: source/ubl-strings.h:136
#: source/ubl-strings.h:137
msgid "Delay compression by one journal in queue:"
msgstr ""
#: source/ubl-strings.h:137
#: source/ubl-strings.h:138
msgid "Compression configuration"
msgstr ""
#: source/ubl-strings.h:138
#: source/ubl-strings.h:139
msgid "Save original log file after rotation if it has specified extension:"
msgstr ""
#: source/ubl-strings.h:139
#: source/ubl-strings.h:140
msgid "Add date of rotation before log header"
msgstr ""
#: source/ubl-strings.h:140
#: source/ubl-strings.h:141
msgid "Number from which numbering of old logs will begin"
msgstr ""
#: source/ubl-strings.h:141
#: source/ubl-strings.h:142
msgid "Filename configuration"
msgstr ""
#: source/ubl-strings.h:142
#: source/ubl-strings.h:143
msgid "Email after rotation:"
msgstr ""
#: source/ubl-strings.h:143
#: source/ubl-strings.h:144
msgid "adress:"
msgstr ""
#: source/ubl-strings.h:144
#: source/ubl-strings.h:145
msgid "contents:"
msgstr ""
#: source/ubl-strings.h:145 source/ubl-strings.h:158
#: source/ubl-strings.h:146 source/ubl-strings.h:159
msgid "Message configuration"
msgstr ""
#: source/ubl-strings.h:146
#: source/ubl-strings.h:147
msgid "Manual input:"
msgstr ""
#: source/ubl-strings.h:147
#: source/ubl-strings.h:148
msgid "Log (-s) size:"
msgstr ""
#: source/ubl-strings.h:148
#: source/ubl-strings.h:149
msgid "Same directory"
msgstr ""
#: source/ubl-strings.h:149
#: source/ubl-strings.h:150
msgid "Separate directory"
msgstr ""
#: source/ubl-strings.h:150
#: source/ubl-strings.h:151
msgid "Output errors if log file does not exist*"
msgstr ""
#: source/ubl-strings.h:151
#: source/ubl-strings.h:152
msgid "Do not output errors if log file does not exist"
msgstr ""
#: source/ubl-strings.h:152
#: source/ubl-strings.h:153
msgid "Do not output"
msgstr ""
#: source/ubl-strings.h:153
#: source/ubl-strings.h:154
msgid "Output errors"
msgstr ""
#: source/ubl-strings.h:154
#: source/ubl-strings.h:155
msgid "Send Email"
msgstr ""
#: source/ubl-strings.h:155
#: source/ubl-strings.h:156
msgid "Don't send Email"
msgstr ""
#: source/ubl-strings.h:156
#: source/ubl-strings.h:157
msgid "First rotated copy"
msgstr ""
#: source/ubl-strings.h:157
#: source/ubl-strings.h:158
msgid "Last rotated copy"
msgstr ""
#: source/ubl-strings.h:159
#: source/ubl-strings.h:160
msgid "Endwork command:"
msgstr ""
#: source/ubl-strings.h:162
#: source/ubl-strings.h:163
msgid "Hourly"
msgstr ""
#: source/ubl-strings.h:163
#: source/ubl-strings.h:164
msgid "Daily"
msgstr ""
#: source/ubl-strings.h:164
#: source/ubl-strings.h:165
msgid "Weekly*"
msgstr ""
#: source/ubl-strings.h:165
#: source/ubl-strings.h:166
msgid "Monthly"
msgstr ""
#: source/ubl-strings.h:166
#: source/ubl-strings.h:167
msgid "Yearly"
msgstr ""
#: source/ubl-strings.h:167
#: source/ubl-strings.h:168
msgid "Monday"
msgstr ""
#: source/ubl-strings.h:168
#: source/ubl-strings.h:169
msgid "Tuesday"
msgstr ""
#: source/ubl-strings.h:169
#: source/ubl-strings.h:170
msgid "Wednesday"
msgstr ""
#: source/ubl-strings.h:170
#: source/ubl-strings.h:171
msgid "Thursday"
msgstr ""
#: source/ubl-strings.h:171
#: source/ubl-strings.h:172
msgid "Friday"
msgstr ""
#: source/ubl-strings.h:172
#: source/ubl-strings.h:173
msgid "Saturday"
msgstr ""
#: source/ubl-strings.h:173
#: source/ubl-strings.h:174
msgid "Sunday*"
msgstr ""
#: source/ubl-strings.h:174
#: source/ubl-strings.h:175
msgid "Same record already exists"
msgstr ""
#: source/ubl-strings.h:175
#: source/ubl-strings.h:176
msgid "Empty important field"
msgstr ""
#: source/ubl-strings.h:176
#: source/ubl-strings.h:177
msgid "Repeating paths"
msgstr ""
#: source/ubl-strings.h:177
#: source/ubl-strings.h:178
msgid "Write down all important fields"
msgstr ""
#: source/ubl-strings.h:178
#: source/ubl-strings.h:179
msgid "Command is invalid"
msgstr ""
#: source/ubl-strings.h:181
#: source/ubl-strings.h:182
msgid "Logs and events - logrotate table"
msgstr ""
#: source/ubl-strings.h:182
#: source/ubl-strings.h:183
msgid "System configuration"
msgstr ""
#: source/ubl-strings.h:183
#: source/ubl-strings.h:184
msgid "Applications configuration"
msgstr ""
#: source/ubl-strings.h:184
#: source/ubl-strings.h:185
msgid "Import log configuration"
msgstr ""
#: source/ubl-strings.h:185
#: source/ubl-strings.h:186
msgid "Add log configuration"
msgstr ""
#: source/ubl-strings.h:186
#: source/ubl-strings.h:187
msgid "Remove log configuration"
msgstr ""
#: source/ubl-strings.h:190
#: source/ubl-strings.h:191
msgid "Logs and events - journal configuration"
msgstr ""
#: source/ubl-strings.h:191
#: source/ubl-strings.h:192
msgid "Path (-s):"
msgstr ""
#: source/ubl-strings.h:192
#: source/ubl-strings.h:193
msgid "Control:"
msgstr ""
#: source/ubl-strings.h:193
#: source/ubl-strings.h:194
msgid "Log file"
msgstr ""
#: source/ubl-strings.h:194
#: source/ubl-strings.h:195
msgid "Name:"
msgstr ""
#: source/ubl-strings.h:195
#: source/ubl-strings.h:196
msgid "Log size:"
msgstr ""
#: source/ubl-strings.h:196
#: source/ubl-strings.h:197
msgid "Journal/log files were not found"
msgstr ""
#: source/ubl-strings.h:199
#: source/ubl-strings.h:200
msgid "Logs and events - rules"
msgstr ""
#: source/ubl-strings.h:200
#: source/ubl-strings.h:201
msgid "Owner rules"
msgstr ""
#: source/ubl-strings.h:201
#: source/ubl-strings.h:202
msgid "Group rules"
msgstr ""
#: source/ubl-strings.h:202
#: source/ubl-strings.h:203
msgid "Public rules"
msgstr ""
#: source/ubl-strings.h:203
#: source/ubl-strings.h:204
msgid "Read"
msgstr ""
#: source/ubl-strings.h:204
#: source/ubl-strings.h:205
msgid "Write"
msgstr ""
#: source/ubl-strings.h:205
#: source/ubl-strings.h:206
msgid "Execute"
msgstr ""
#: source/ubl-strings.h:206
#: source/ubl-strings.h:207
msgid "Value:"
msgstr ""
#: source/ubl-strings.h:209
#: source/ubl-strings.h:210
msgid ": no such file(s)"
msgstr ""
#: source/ubl-strings.h:210
#: source/ubl-strings.h:211
msgid "Parameter"
msgstr ""
#: source/ubl-strings.h:211
#: source/ubl-strings.h:212
msgid "Old value"
msgstr ""
#: source/ubl-strings.h:212
#: source/ubl-strings.h:213
msgid "New value"
msgstr ""
#: source/ubl-strings.h:214
#: source/ubl-strings.h:215
msgid "Logs and events - choose a path"
msgstr ""
#: source/ubl-strings.h:215
#: source/ubl-strings.h:216
msgid "Logs and events - saving"
msgstr ""
#: source/ubl-strings.h:217
#: source/ubl-strings.h:218
msgid "Authorization has been elevated"
msgstr ""
#: source/ubl-strings.h:218
#: source/ubl-strings.h:219
msgid "Authorization has been unelevated"
msgstr ""

@ -74,7 +74,7 @@ msgstr "Описание"
msgid "Inspect log"
msgstr "Просмотреть лог"
#: source/ubl-strings.h:22 source/ubl-strings.h:187
#: source/ubl-strings.h:22 source/ubl-strings.h:188
msgid "Configure log"
msgstr "Настроить лог"
@ -174,331 +174,335 @@ msgstr "Журнал сеансов графической системы X"
msgid "Save"
msgstr "Сохранить"
#: source/ubl-strings.h:49
#: source/ubl-strings.h:47
msgid "Manage service"
msgstr "Настроить службу"
#: source/ubl-strings.h:50
msgid "Inspect"
msgstr "Просмотр"
#: source/ubl-strings.h:50
#: source/ubl-strings.h:51
msgid "Show messages since the current system boot"
msgstr "Показать сообщения с момента загрузки системы"
#: source/ubl-strings.h:51
#: source/ubl-strings.h:52
msgid "Follow for new messages"
msgstr "Следить за появлением новых сообщений"
#: source/ubl-strings.h:52
#: source/ubl-strings.h:53
msgid "Show kernel ring buffer"
msgstr "Показать кольцевой буфер ядра"
#: source/ubl-strings.h:53
#: source/ubl-strings.h:54
msgid "Show only priority error messages, critical messages and warnings"
msgstr ""
"Показать только приоритетные сообщения об ошибках, критических сообщениях и "
"предупреждениях"
#: source/ubl-strings.h:54
#: source/ubl-strings.h:55
msgid "Show all boots"
msgstr "Показать все загрузки в журнале"
#: source/ubl-strings.h:55
#: source/ubl-strings.h:56
msgid "Show a list of all units, ordered by the time of their initialisation"
msgstr ""
"Показать список всех работающих юнитов, упорядоченных по времени их "
"инициализации"
#: source/ubl-strings.h:56
#: source/ubl-strings.h:57
msgid "Show tree of time-critical initialization unit chain"
msgstr "Показать дерево критической по времени цепочки юнитов инициализации"
#: source/ubl-strings.h:57
#: source/ubl-strings.h:58
msgid "Update"
msgstr "Обновить"
#: source/ubl-strings.h:58
#: source/ubl-strings.h:59
msgid "Date"
msgstr "Дата"
#: source/ubl-strings.h:59
#: source/ubl-strings.h:60
msgid "Hostname"
msgstr "Имя хоста"
#: source/ubl-strings.h:60
#: source/ubl-strings.h:61
msgid "Process"
msgstr "Процесс"
#: source/ubl-strings.h:61
#: source/ubl-strings.h:62
msgid "Log"
msgstr "Запись лога"
#: source/ubl-strings.h:64
#: source/ubl-strings.h:65
msgid "Logs and events - journald configuration"
msgstr "Логи и журналы событий - конфигурация сервиса journald"
#: source/ubl-strings.h:65
#: source/ubl-strings.h:66
msgid "Description:"
msgstr "Описание:"
#: source/ubl-strings.h:66
#: source/ubl-strings.h:67
msgid "Journal storage place:"
msgstr "Место хранения журнала:"
#: source/ubl-strings.h:67 source/ubl-strings.h:68
#: source/ubl-strings.h:68 source/ubl-strings.h:69
msgid "Use compression:"
msgstr "Использовать сжатие:"
#: source/ubl-strings.h:69
#: source/ubl-strings.h:70
msgid "Split journal files:"
msgstr "Разделять файлы журнала:"
#: source/ubl-strings.h:70
#: source/ubl-strings.h:71
msgid "Log recording journal interval:"
msgstr "Интервал записи журнала:"
#: source/ubl-strings.h:71
#: source/ubl-strings.h:72
msgid "Records amount:"
msgstr "Количество записей:"
#: source/ubl-strings.h:72
#: source/ubl-strings.h:73
msgid "Maximum size of all logs:"
msgstr "Максимальный размер всех журналов:"
#: source/ubl-strings.h:73
#: source/ubl-strings.h:74
msgid "Maximum size of rotation journal:"
msgstr "Максимальный размер журнала для ротации:"
#: source/ubl-strings.h:74
#: source/ubl-strings.h:75
msgid "Leave free space at storage:"
msgstr "Оставлять в хранилище свободным:"
#: source/ubl-strings.h:75
#: source/ubl-strings.h:76
msgid "Redirect to console:"
msgstr "Перенаправление в консоль:"
#: source/ubl-strings.h:76
#: source/ubl-strings.h:77
msgid "TTY:"
msgstr "TTY:"
#: source/ubl-strings.h:77
#: source/ubl-strings.h:78
msgid "Type of forwarded messages:"
msgstr "Тип перенаправляемых сообщений:"
#: source/ubl-strings.h:78
#: source/ubl-strings.h:79
msgid "Journal configuration"
msgstr "Настройка файла журнала"
#: source/ubl-strings.h:79
#: source/ubl-strings.h:80
msgid "Total log size:"
msgstr "Общий размер журналов:"
#: source/ubl-strings.h:80
#: source/ubl-strings.h:81
msgid "Lower size to:"
msgstr "Уменьшить размер до:"
#: source/ubl-strings.h:81
#: source/ubl-strings.h:82
msgid "Apply"
msgstr "Применить"
#: source/ubl-strings.h:82
#: source/ubl-strings.h:83
msgid "Statistics"
msgstr "Статистика"
#: source/ubl-strings.h:83
#: source/ubl-strings.h:84
msgid "Default"
msgstr "По умолчанию"
#: source/ubl-strings.h:84
#: source/ubl-strings.h:85
msgid "RAM"
msgstr "Оперативная память"
#: source/ubl-strings.h:85
#: source/ubl-strings.h:86
msgid "Drive"
msgstr "Диск"
#: source/ubl-strings.h:86
#: source/ubl-strings.h:87
msgid "Auto"
msgstr "Автоматически"
#: source/ubl-strings.h:87
#: source/ubl-strings.h:88
msgid "None"
msgstr "Нет"
#: source/ubl-strings.h:88
#: source/ubl-strings.h:89
msgid "Yes"
msgstr "Да"
#: source/ubl-strings.h:89
#: source/ubl-strings.h:90
msgid "No"
msgstr "Нет"
#: source/ubl-strings.h:90
#: source/ubl-strings.h:91
msgid "After"
msgstr "После"
#: source/ubl-strings.h:91
#: source/ubl-strings.h:92
msgid "Kb"
msgstr "Кб"
#: source/ubl-strings.h:92
#: source/ubl-strings.h:93
msgid "Mb"
msgstr "Мб"
#: source/ubl-strings.h:93
#: source/ubl-strings.h:94
msgid "Gb"
msgstr "Гб"
#: source/ubl-strings.h:94
#: source/ubl-strings.h:95
msgid "Minutes"
msgstr "Минут"
#: source/ubl-strings.h:95
#: source/ubl-strings.h:96
msgid "Hours"
msgstr "Часов"
#: source/ubl-strings.h:96
#: source/ubl-strings.h:97
msgid "Days"
msgstr "Дней"
#: source/ubl-strings.h:97
#: source/ubl-strings.h:98
msgid "Weeks"
msgstr "Недель"
#: source/ubl-strings.h:98
#: source/ubl-strings.h:99
msgid "Years"
msgstr "Лет"
#: source/ubl-strings.h:99
#: source/ubl-strings.h:100
msgid "Reset"
msgstr "По умолчанию"
#: source/ubl-strings.h:102
#: source/ubl-strings.h:103
msgid "Logs and events - logrotate configuration"
msgstr "Логи и журналы событий - конфигурация сервиса logrotate"
#: source/ubl-strings.h:103
#: source/ubl-strings.h:104
msgid "Log/Journal:"
msgstr "Лог/Журнал:"
#: source/ubl-strings.h:104
#: source/ubl-strings.h:105
msgid "Paths to log and journals files"
msgstr "Пути к файлам лога/журнала"
#: source/ubl-strings.h:105
#: source/ubl-strings.h:106
msgid "On"
msgstr "Включено"
#: source/ubl-strings.h:106
#: source/ubl-strings.h:107
msgid "Off"
msgstr "Выключено"
#: source/ubl-strings.h:107 source/ubl-strings.h:161
#: source/ubl-strings.h:108 source/ubl-strings.h:162
msgid "Scenarios"
msgstr "Сценарии"
#: source/ubl-strings.h:108 source/ubl-strings.h:160
#: source/ubl-strings.h:109 source/ubl-strings.h:161
msgid "Scenarios are running for each rotated journal"
msgstr "Сценарии запускаются для каждого ротируемого журнала"
#: source/ubl-strings.h:109
#: source/ubl-strings.h:110
msgid "Command before rotation (one time):"
msgstr "Команда перед ротацией (один раз):"
#: source/ubl-strings.h:110
#: source/ubl-strings.h:111
msgid "Command after rotation (one time):"
msgstr "Команда после ротации (один раз):"
#: source/ubl-strings.h:111
#: source/ubl-strings.h:112
msgid "Command before rotation:"
msgstr "Команда перед ротацией:"
#: source/ubl-strings.h:112
#: source/ubl-strings.h:113
msgid "Command after rotation:"
msgstr "Команда после ротации:"
#: source/ubl-strings.h:113
#: source/ubl-strings.h:114
msgid "Rotation period:"
msgstr "Период ротации:"
#: source/ubl-strings.h:114
#: source/ubl-strings.h:115
msgid "Maximum size of file:"
msgstr "Максимальный размер файла:"
#: source/ubl-strings.h:115
#: source/ubl-strings.h:116
msgid "Checking frequency configuration"
msgstr "Настройки частоты проверки"
#: source/ubl-strings.h:116
#: source/ubl-strings.h:117
msgid "File amount:"
msgstr "Количество файлов:"
#: source/ubl-strings.h:117
#: source/ubl-strings.h:118
msgid "Store at:"
msgstr "Хранить в:"
#: source/ubl-strings.h:118
#: source/ubl-strings.h:119
msgid "Rotation as user:"
msgstr "Ротация от пользователя:"
#: source/ubl-strings.h:119
#: source/ubl-strings.h:120
msgid "Rotation as group:"
msgstr "Ротация от группы:"
#: source/ubl-strings.h:120
#: source/ubl-strings.h:121
msgid "Rotation configuration"
msgstr "Настройки ротации"
#: source/ubl-strings.h:121
#: source/ubl-strings.h:122
msgid "Error processing:"
msgstr "Обработка ошибок:"
#: source/ubl-strings.h:122
#: source/ubl-strings.h:123
msgid "Rotation of jurnal even when it is empty:"
msgstr "Ротация файла журнала даже если он пуст:"
#: source/ubl-strings.h:123
#: source/ubl-strings.h:124
msgid "Do not rotate journal younger than"
msgstr "Не ротировать журналы, возраст которых меньше"
#: source/ubl-strings.h:124
#: source/ubl-strings.h:125
msgid "days"
msgstr "дней"
#: source/ubl-strings.h:125
#: source/ubl-strings.h:126
msgid "Delete rotated journals older than"
msgstr "Удалить ротированные журналы старше"
#: source/ubl-strings.h:126
#: source/ubl-strings.h:127
msgid "Rotate journals if size more than"
msgstr "Ротация журналов, если размер превышает"
#: source/ubl-strings.h:127
#: source/ubl-strings.h:128
msgid "but not earlier than the specified time interval"
msgstr "но не раньше указанного интервала времени"
#: source/ubl-strings.h:128
#: source/ubl-strings.h:129
msgid "before specified time interval"
msgstr "до истечения указанного интервала времени"
#: source/ubl-strings.h:129
#: source/ubl-strings.h:130
msgid "File choosing configuration"
msgstr "Настройки выбора файла"
#: source/ubl-strings.h:130
#: source/ubl-strings.h:131
msgid "Create log"
msgstr "Создавать лог"
#: source/ubl-strings.h:131
#: source/ubl-strings.h:132
msgid "as user:"
msgstr "от пользователя:"
#: source/ubl-strings.h:132
#: source/ubl-strings.h:133
msgid "as group:"
msgstr "от группы:"
#: source/ubl-strings.h:133
#: source/ubl-strings.h:134
msgid "rules:"
msgstr "права:"
#: source/ubl-strings.h:134
#: source/ubl-strings.h:135
msgid ""
"Cut source journal fileafter copy creating instead of moving old journal "
"file and creating new one"
@ -506,294 +510,294 @@ msgstr ""
"После создания копии, обрезать исходный файл журнала взамен перемещения "
"старого файла журнала и создания нового"
#: source/ubl-strings.h:135
#: source/ubl-strings.h:136
msgid "Files and directories configuration"
msgstr "Настройки файлов и папок"
#: source/ubl-strings.h:136
#: source/ubl-strings.h:137
msgid "Delay compression by one journal in queue:"
msgstr "Отложить сжание на один журнал в очереди:"
#: source/ubl-strings.h:137
#: source/ubl-strings.h:138
msgid "Compression configuration"
msgstr "Настройка сжатия"
#: source/ubl-strings.h:138
#: source/ubl-strings.h:139
msgid "Save original log file after rotation if it has specified extension:"
msgstr ""
"Сохранять оригинальный лог после ротации, если у него указано расширение:"
#: source/ubl-strings.h:139
#: source/ubl-strings.h:140
msgid "Add date of rotation before log header"
msgstr "Добавлять дату ротации перед заголовком старого лога:"
#: source/ubl-strings.h:140
#: source/ubl-strings.h:141
msgid "Number from which numbering of old logs will begin"
msgstr "Номер, с которого будет начата нумерация старых логов:"
#: source/ubl-strings.h:141
#: source/ubl-strings.h:142
msgid "Filename configuration"
msgstr "Настройка имени файлов"
#: source/ubl-strings.h:142
#: source/ubl-strings.h:143
msgid "Email after rotation:"
msgstr "Отправка Email после ротации:"
#: source/ubl-strings.h:143
#: source/ubl-strings.h:144
msgid "adress:"
msgstr "на адрес:"
#: source/ubl-strings.h:144
#: source/ubl-strings.h:145
msgid "contents:"
msgstr "содержимое:"
#: source/ubl-strings.h:145 source/ubl-strings.h:158
#: source/ubl-strings.h:146 source/ubl-strings.h:159
msgid "Message configuration"
msgstr "Настройка сообщения"
#: source/ubl-strings.h:146
#: source/ubl-strings.h:147
msgid "Manual input:"
msgstr "Команды настройки"
#: source/ubl-strings.h:147
#: source/ubl-strings.h:148
msgid "Log (-s) size:"
msgstr "Общий размер лога (-ов):"
#: source/ubl-strings.h:148
#: source/ubl-strings.h:149
msgid "Same directory"
msgstr "Той же папке"
#: source/ubl-strings.h:149
#: source/ubl-strings.h:150
msgid "Separate directory"
msgstr "Другой папке"
#: source/ubl-strings.h:150
#: source/ubl-strings.h:151
msgid "Output errors if log file does not exist*"
msgstr "Выводить ошибки, если лог файла не существует*"
#: source/ubl-strings.h:151
#: source/ubl-strings.h:152
msgid "Do not output errors if log file does not exist"
msgstr "Не выводить ошибки, если лог файла не существует"
#: source/ubl-strings.h:152
#: source/ubl-strings.h:153
msgid "Do not output"
msgstr "Не выводить"
#: source/ubl-strings.h:153
#: source/ubl-strings.h:154
msgid "Output errors"
msgstr "Выводить ошибки"
#: source/ubl-strings.h:154
#: source/ubl-strings.h:155
msgid "Send Email"
msgstr "Отправлять Email"
#: source/ubl-strings.h:155
#: source/ubl-strings.h:156
msgid "Don't send Email"
msgstr "Не отправлять Email"
#: source/ubl-strings.h:156
#: source/ubl-strings.h:157
msgid "First rotated copy"
msgstr "Первая ротированная копия"
#: source/ubl-strings.h:157
#: source/ubl-strings.h:158
msgid "Last rotated copy"
msgstr "Последняя ротированная копия"
#: source/ubl-strings.h:159
#: source/ubl-strings.h:160
msgid "Endwork command:"
msgstr "Команда перед удалением файла журнала:"
#: source/ubl-strings.h:162
#: source/ubl-strings.h:163
msgid "Hourly"
msgstr "Час"
#: source/ubl-strings.h:163
#: source/ubl-strings.h:164
msgid "Daily"
msgstr "День"
#: source/ubl-strings.h:164
#: source/ubl-strings.h:165
msgid "Weekly*"
msgstr "Неделя*"
#: source/ubl-strings.h:165
#: source/ubl-strings.h:166
msgid "Monthly"
msgstr "Месяц"
#: source/ubl-strings.h:166
#: source/ubl-strings.h:167
msgid "Yearly"
msgstr "Год"
#: source/ubl-strings.h:167
#: source/ubl-strings.h:168
msgid "Monday"
msgstr "Понедельник"
#: source/ubl-strings.h:168
#: source/ubl-strings.h:169
msgid "Tuesday"
msgstr "Вторник"
#: source/ubl-strings.h:169
#: source/ubl-strings.h:170
msgid "Wednesday"
msgstr "Среда"
#: source/ubl-strings.h:170
#: source/ubl-strings.h:171
msgid "Thursday"
msgstr "Четверг"
#: source/ubl-strings.h:171
#: source/ubl-strings.h:172
msgid "Friday"
msgstr "Пятница"
#: source/ubl-strings.h:172
#: source/ubl-strings.h:173
msgid "Saturday"
msgstr "Суббота"
#: source/ubl-strings.h:173
#: source/ubl-strings.h:174
msgid "Sunday*"
msgstr "Воскресенье*"
#: source/ubl-strings.h:174
#: source/ubl-strings.h:175
msgid "Same record already exists"
msgstr "Такая запись уже существует"
#: source/ubl-strings.h:175
#: source/ubl-strings.h:176
msgid "Empty important field"
msgstr "Важное поле не заполнено"
#: source/ubl-strings.h:176
#: source/ubl-strings.h:177
msgid "Repeating paths"
msgstr "Повторяющиеся пути"
#: source/ubl-strings.h:177
#: source/ubl-strings.h:178
msgid "Write down all important fields"
msgstr "Введите все необходимые поля"
#: source/ubl-strings.h:178
#: source/ubl-strings.h:179
msgid "Command is invalid"
msgstr "Неверная команда"
#: source/ubl-strings.h:181
#: source/ubl-strings.h:182
msgid "Logs and events - logrotate table"
msgstr "Логи и журналы событий - таблица журналов logrotate"
#: source/ubl-strings.h:182
#: source/ubl-strings.h:183
msgid "System configuration"
msgstr "Настройки системы"
#: source/ubl-strings.h:183
#: source/ubl-strings.h:184
msgid "Applications configuration"
msgstr "Настройки приложений"
#: source/ubl-strings.h:184
#: source/ubl-strings.h:185
msgid "Import log configuration"
msgstr "Импортировать конфигурацию лога"
#: source/ubl-strings.h:185
#: source/ubl-strings.h:186
msgid "Add log configuration"
msgstr "Добавить конфигурацию лога"
#: source/ubl-strings.h:186
#: source/ubl-strings.h:187
msgid "Remove log configuration"
msgstr "Удалить конфигурацию лога"
#: source/ubl-strings.h:190
#: source/ubl-strings.h:191
msgid "Logs and events - journal configuration"
msgstr "Логи и журналы событий - конфигурация журнала"
#: source/ubl-strings.h:191
#: source/ubl-strings.h:192
msgid "Path (-s):"
msgstr "Путь (-и):"
#: source/ubl-strings.h:192
#: source/ubl-strings.h:193
msgid "Control:"
msgstr "Управление:"
#: source/ubl-strings.h:193
#: source/ubl-strings.h:194
msgid "Log file"
msgstr "Файл лога"
#: source/ubl-strings.h:194
#: source/ubl-strings.h:195
msgid "Name:"
msgstr "Имя:"
#: source/ubl-strings.h:195
#: source/ubl-strings.h:196
msgid "Log size:"
msgstr "Размер лога:"
#: source/ubl-strings.h:196
#: source/ubl-strings.h:197
msgid "Journal/log files were not found"
msgstr "Файлы журналов/логов не были найдены"
#: source/ubl-strings.h:199
#: source/ubl-strings.h:200
msgid "Logs and events - rules"
msgstr "Логи и журналы событий - правила"
#: source/ubl-strings.h:200
#: source/ubl-strings.h:201
msgid "Owner rules"
msgstr "Правила владельца"
#: source/ubl-strings.h:201
#: source/ubl-strings.h:202
msgid "Group rules"
msgstr "Правила группы"
#: source/ubl-strings.h:202
#: source/ubl-strings.h:203
msgid "Public rules"
msgstr "Правила остальных"
#: source/ubl-strings.h:203
#: source/ubl-strings.h:204
msgid "Read"
msgstr "Чтение"
#: source/ubl-strings.h:204
#: source/ubl-strings.h:205
msgid "Write"
msgstr "Запись"
#: source/ubl-strings.h:205
#: source/ubl-strings.h:206
msgid "Execute"
msgstr "Исполнение"
#: source/ubl-strings.h:206
#: source/ubl-strings.h:207
msgid "Value:"
msgstr "Значение:"
#: source/ubl-strings.h:209
#: source/ubl-strings.h:210
msgid ": no such file(s)"
msgstr ": файл(ы) не найден(ы)"
#: source/ubl-strings.h:210
#: source/ubl-strings.h:211
msgid "Parameter"
msgstr "Параметр"
#: source/ubl-strings.h:211
#: source/ubl-strings.h:212
msgid "Old value"
msgstr "Старое значение"
#: source/ubl-strings.h:212
#: source/ubl-strings.h:213
msgid "New value"
msgstr "Новое значение"
#: source/ubl-strings.h:214
#: source/ubl-strings.h:215
msgid "Logs and events - choose a path"
msgstr "Логи и журналы событий - Выбор пути"
#: source/ubl-strings.h:215
#: source/ubl-strings.h:216
msgid "Logs and events - saving"
msgstr "Логи и журналы событий - сохранение"
#: source/ubl-strings.h:217
#: source/ubl-strings.h:218
msgid "Authorization has been elevated"
msgstr ""
#: source/ubl-strings.h:218
#: source/ubl-strings.h:219
msgid "Authorization has been unelevated"
msgstr ""
#~ msgid "System event log rotation service"
#~ msgstr "Служба ротации системных журналов событий"
msgid "System event log rotation service"
msgstr "Служба ротации системных журналов событий"
#~ msgid ""
#~ "Service for collecting messages from system events of active network "
#~ "devices"
#~ msgstr "Сервис сбора сообщений системных событий активных сетевых устройств"
msgid ""
"Service for collecting messages from system events of active network "
"devices"
msgstr "Сервис сбора сообщений системных событий активных сетевых устройств"
#~ msgid "Logs and events - log inspector"
#~ msgstr "Логи и журналы событий - просмотр журнала"
msgid "Logs and events - log inspector"
msgstr "Логи и журналы событий - просмотр журнала"

Loading…
Cancel
Save