mirror of
https://github.com/sigmasternchen/Wish
synced 2025-03-15 07:28:56 +00:00
full version of init
This commit is contained in:
parent
a8925f7811
commit
1b5b392148
2 changed files with 29 additions and 8 deletions
|
@ -980,17 +980,18 @@ Kernel.Filesystem.vfs.getFileByPath = function (path) {
|
|||
}
|
||||
Kernel.Filesystem.vfs.createFile = function (path) {
|
||||
var paths = path.split("/");
|
||||
var pathss = paths.splice(paths.length - 1, 1);
|
||||
pathss = pathss.join("/");
|
||||
var parent = Kernel.Filesystem.vfs.getFileByPath(pathss);
|
||||
var pathss = path.split("/");
|
||||
paths.splice(paths.length - 1, 1);
|
||||
paths = paths.join("/");
|
||||
var parent = Kernel.Filesystem.vfs.getFileByPath(paths);
|
||||
if (!parent)
|
||||
throw("no such file or directory: " + pathss);
|
||||
var timestampOfCreattion = (new Date()).getTime();
|
||||
throw("no such file or directory: " + paths);
|
||||
var timestampOfCreation = (new Date()).getTime();
|
||||
file = new InnerFile();
|
||||
file.name = paths[paths.length - 1];
|
||||
file.name = pathss[pathss.length - 1];
|
||||
file.id = Kernel.Filesystem.vfs.index++;
|
||||
var uid = Kernel.ProcessManager.getUserByPID(Kernel.ProcessManager.getCurrentPID());
|
||||
var gid = Kernel.ProcessManager.getUserById(uid).group;
|
||||
var gid = Kernel.UserManager.getUserById(uid).group;
|
||||
file.ownerID = uid;
|
||||
file.groupID = gid;
|
||||
file.parent = parent.id;
|
||||
|
|
|
@ -18,7 +18,27 @@ InitClass.prototype.main = function(args) {
|
|||
Emulator.output("\n adding to scheduler job list");
|
||||
Kernel.Scheduler.add(this);
|
||||
} else {
|
||||
|
||||
var uid = Kernel.ProcessManager.getUserByPID(this.pid);
|
||||
if (uid != 0) {
|
||||
this.files['stdout'].write("init: need to be root\n");
|
||||
this.exit(1);
|
||||
}
|
||||
if (args.length != 2) {
|
||||
this.files['stdout'].write("init: missing runlevel\n");
|
||||
this.exit(1);
|
||||
}
|
||||
if (!isNumber(args[1])) {
|
||||
this.files['stdout'].write("init: illegal runlevel\n");
|
||||
this.exit(1);
|
||||
}
|
||||
var tmp = new File("/tmp/destLevel.1");
|
||||
tmp.writeMode = MODE_OVRWD;
|
||||
tmp.notExistsMode = MODE_CREATE;
|
||||
tmp.write(parseInt(args[1]));
|
||||
tmp.close();
|
||||
var init = Kernel.ProcessManager.getProcess(1); // init has pid 1
|
||||
init.signalHandler(SIGUSR1);
|
||||
this.exit(0);
|
||||
}
|
||||
}
|
||||
InitClass.prototype.tick = function() {
|
||||
|
|
Loading…
Reference in a new issue