forked from KolibriOS/kolibrios
SHELL:
- Added pkill command git-svn-id: svn://kolibrios.org@8662 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -27,6 +27,7 @@ void get_file_dir_loc(char *filepath, char *dir_path);
|
|||||||
#include "cmd/cmd_ls.c"
|
#include "cmd/cmd_ls.c"
|
||||||
#include "cmd/cmd_ps.c"
|
#include "cmd/cmd_ps.c"
|
||||||
#include "cmd/cmd_kill.c"
|
#include "cmd/cmd_kill.c"
|
||||||
|
#include "cmd/cmd_pkill.c"
|
||||||
#include "cmd/cmd_echo.c"
|
#include "cmd/cmd_echo.c"
|
||||||
#include "cmd/cmd_date.c"
|
#include "cmd/cmd_date.c"
|
||||||
#include "cmd/cmd_exit.c"
|
#include "cmd/cmd_exit.c"
|
||||||
|
50
programs/system/shell/cmd/cmd_pkill.c
Normal file
50
programs/system/shell/cmd/cmd_pkill.c
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
int cmd_pkill(char param[])
|
||||||
|
{
|
||||||
|
int i=1, n=0; int process_count=0;
|
||||||
|
char *buf1k=NULL;
|
||||||
|
unsigned PID=0;
|
||||||
|
|
||||||
|
#ifdef LANG_RUS
|
||||||
|
#define PKILL_HELP " pkill <<3C><><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>\n\r"
|
||||||
|
#define PKILL_KILL " PID: %u - 㡨<>\n"
|
||||||
|
#define PKILL_NOT_KILL " PID: %u - <20><> 㡨<>\n"
|
||||||
|
#define PKILL_NOT_FOUND " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ <20> ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\n"
|
||||||
|
#else
|
||||||
|
#define PKILL_HELP " pkill <process_name>\n\r"
|
||||||
|
#define PKILL_KILL " PID: %u - killed\n"
|
||||||
|
#define PKILL_NOT_KILL " PID: %u - not killed\n"
|
||||||
|
#define PKILL_NOT_FOUND " No processes with this name were found!\n"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
if(!strlen(param)){
|
||||||
|
printf(PKILL_HELP);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
buf1k = malloc(1024);
|
||||||
|
if(buf1k==NULL){
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
while(i!=n){
|
||||||
|
n = kol_process_info(i, buf1k);
|
||||||
|
if(!strnicmp(buf1k+10, param, 10)){
|
||||||
|
memcpy(&PID, buf1k+30 ,sizeof(unsigned));
|
||||||
|
if(kol_process_kill_pid(PID)){
|
||||||
|
printf(PKILL_NOT_KILL, PID);
|
||||||
|
}else{
|
||||||
|
printf(PKILL_KILL, PID);
|
||||||
|
}
|
||||||
|
process_count++;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!process_count){
|
||||||
|
printf(PKILL_NOT_FOUND);
|
||||||
|
}
|
||||||
|
|
||||||
|
free(buf1k);
|
||||||
|
return TRUE;
|
||||||
|
}
|
@@ -51,6 +51,7 @@ int cmd_exit(char arg[]);
|
|||||||
int cmd_memory(char arg[]);
|
int cmd_memory(char arg[]);
|
||||||
int cmd_help(char cmd[]);
|
int cmd_help(char cmd[]);
|
||||||
int cmd_kill(char process[]);
|
int cmd_kill(char process[]);
|
||||||
|
int cmd_pkill(char process_name[]);
|
||||||
int cmd_ls(char dir[]);
|
int cmd_ls(char dir[]);
|
||||||
int cmd_mkdir(char dir[]);
|
int cmd_mkdir(char dir[]);
|
||||||
int cmd_more(char file[]);
|
int cmd_more(char file[]);
|
||||||
|
@@ -15,6 +15,7 @@ const command_t COMMANDS[]=
|
|||||||
{"help", " Gives help on commands. Usage:\n\r help ;it lists all builtins\n\r help <command> ;help on command\n\r", &cmd_help},
|
{"help", " Gives help on commands. Usage:\n\r help ;it lists all builtins\n\r help <command> ;help on command\n\r", &cmd_help},
|
||||||
{"history", " Lists used commands\n\r", &cmd_history},
|
{"history", " Lists used commands\n\r", &cmd_history},
|
||||||
{"kill", " Stops a running process. Usage:\n\r kill <PID of process>\n\r kill all\n\r", &cmd_kill},
|
{"kill", " Stops a running process. Usage:\n\r kill <PID of process>\n\r kill all\n\r", &cmd_kill},
|
||||||
|
{"pkill", " Kills all processes by name. Usage:\n\r pkill <process_name>\n\r", &cmd_pkill},
|
||||||
{"ls", " Lists the files in a directory. Usage:\n\r ls ;lists the files in current directory\n\r ls <directory> ;lists the files at specified folder\n\r ls -1 ;lists the files in a single column\n\r", &cmd_ls},
|
{"ls", " Lists the files in a directory. Usage:\n\r ls ;lists the files in current directory\n\r ls <directory> ;lists the files at specified folder\n\r ls -1 ;lists the files in a single column\n\r", &cmd_ls},
|
||||||
{"mkdir", " Makes directory. Usage:\n\r mkdir <folder name> ;creates the folder in working directory\n\r mkdir <path><folder name> ;create folder by specified path\n\r", &cmd_mkdir},
|
{"mkdir", " Makes directory. Usage:\n\r mkdir <folder name> ;creates the folder in working directory\n\r mkdir <path><folder name> ;create folder by specified path\n\r", &cmd_mkdir},
|
||||||
{"more", " Displays a file data to the screen. Usage:\n\r more <file name>\n\r", &cmd_more},
|
{"more", " Displays a file data to the screen. Usage:\n\r more <file name>\n\r", &cmd_more},
|
||||||
|
@@ -15,6 +15,7 @@ const command_t COMMANDS[]=
|
|||||||
{"help", " <20><>ࠢ<EFBFBD><E0A0A2> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r help ;ᯨ᮪ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\r help <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> ;<3B><>ࠢ<EFBFBD><E0A0A2> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\r", &cmd_help},
|
{"help", " <20><>ࠢ<EFBFBD><E0A0A2> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r help ;ᯨ᮪ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\r help <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> ;<3B><>ࠢ<EFBFBD><E0A0A2> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\r", &cmd_help},
|
||||||
{"history", " <20><><EFBFBD>᮪ <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\r", &cmd_history},
|
{"history", " <20><><EFBFBD>᮪ <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\r", &cmd_history},
|
||||||
{"kill", " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r kill <PID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>\n\r kill all\n\r", &cmd_kill},
|
{"kill", " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r kill <PID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>\n\r kill all\n\r", &cmd_kill},
|
||||||
|
{"pkill", " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r pkill <<3C><><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>\n\r", &cmd_pkill},
|
||||||
{"ls", " <20>뢮<EFBFBD><EBA2AE><EFBFBD> ᯨ᮪ 䠩<><E4A0A9><EFBFBD>. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r ls ;ᯨ᮪ 䠩<><E4A0A9><EFBFBD> <20> ⥪<>饬 <20><>⠫<EFBFBD><E2A0AB><EFBFBD>\n\r ls <<3C><>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD>> ;ᯨ᮪ 䠩<><E4A0A9><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA>ਨ\n\r", &cmd_ls},
|
{"ls", " <20>뢮<EFBFBD><EBA2AE><EFBFBD> ᯨ᮪ 䠩<><E4A0A9><EFBFBD>. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r ls ;ᯨ᮪ 䠩<><E4A0A9><EFBFBD> <20> ⥪<>饬 <20><>⠫<EFBFBD><E2A0AB><EFBFBD>\n\r ls <<3C><>४<EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD>> ;ᯨ᮪ 䠩<><E4A0A9><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA>ਨ\n\r", &cmd_ls},
|
||||||
{"mkdir", " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⠫<EFBFBD><E2A0AB>. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r mkdir <<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>> ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ⥪<>饬 <20><>⠫<EFBFBD><E2A0AB><EFBFBD>\n\r mkdir <<3C><><EFBFBD><EFBFBD>><<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>> ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> 㪠<><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>\n\r", &cmd_mkdir},
|
{"mkdir", " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⠫<EFBFBD><E2A0AB>. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r mkdir <<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>> ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ⥪<>饬 <20><>⠫<EFBFBD><E2A0AB><EFBFBD>\n\r mkdir <<3C><><EFBFBD><EFBFBD>><<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>> ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> 㪠<><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>\n\r", &cmd_mkdir},
|
||||||
{"more", " <20>뢮<EFBFBD><EBA2AE><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> 䠩<><E4A0A9> <20><> <20><>࠭. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r more <<3C><><EFBFBD> 䠩<><E4A0A9>>\n\r", &cmd_more},
|
{"more", " <20>뢮<EFBFBD><EBA2AE><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> 䠩<><E4A0A9> <20><> <20><>࠭. <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD>:\n\r more <<3C><><EFBFBD> 䠩<><E4A0A9>>\n\r", &cmd_more},
|
||||||
|
Reference in New Issue
Block a user